我想用模块文件MyTests.py
中的unittest为我的主文件calc.py
编写测试。你知道吗
这是我的主要python文件calc.py
:
import myTests
def first(x):
return x**2
def second(x):
return x**3
def main():
one = first(5)
two = second(5)
if __name__ == "__main__":
main()
try:
myTests.unittest.main()
except SystemExit:
pass
这是我的MyTests.py
文件:
import unittest
import calc
class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
self.testInput = 10
def test_first(self):
output = calc.first(self.testInput)
correct = 100
assert(output == correct)
def test_second(self):
output = calc.second(self.testInput)
correct = 1000
assert(output == correct)
当我运行calc.py
时,我得到以下输出:
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
为什么unittest向我显示“run0test”?
在模块中编写unittest的正确方法是什么?你知道吗
unittests.main()
在当前模块中查找TestCase
实例。您的模块没有这样的测试用例;它只有一个myTests
全局。你知道吗最佳实践是运行测试本身。将
__main__
部分添加到myTests.py
文件:改为运行
python myTests.py
。你知道吗或者,将导入的
myTests
模块传递到unittest.main()
。您可能需要将import myTests
行向下移动到__main__
,因为您也有一个循环导入。在您的例子中,这很好,myTests
在测试用例之外不使用任何来自calc
的全局变量,但是最好对此进行明确说明。你知道吗相关问题 更多 >
编程相关推荐