我在pycharm中运行unittests时遇到问题。第一类' KnownValues'但是其他课程根本没有检查过。
import roman
import unittest
class KnownValues(unittest.TestCase):
def test_too_large(self):
'''to_roman should fail with large input'''
self.assertRaises(roman.OutOfRangeError, roman.to_roman, 4000)
def test_too_small(self):
ls = [0,-1,-25,-60]
for x in ls:
self.assertRaises(roman.OutOfRangeError, roman.to_roman, x)
def test_non_int(self):
ls = [1.5, -6.5, 6.8,12.9, "hello wold", "nigga123"]
for x in ls:
self.assertRaises(roman.TypeError, roman.to_roman, x)
class Test2(unittest.TestCase):
def test1(self):
assert 1 == 1
if __name__ == '__main__':
unittest.main()
答案 0 :(得分:3)
使用test
启动所有测试功能。许多人使用下划线来分隔单词,因此很多人最终会以test_
开始进行测试,但只需要test
。
如果在GUI中出现问题,您可以从命令行检查测试的运行方式。
python test.py
或
python -m test
您可能遇到的一个问题是您已经在类中定义了测试,并且在通过GUI运行它们时,GUI会自动为您发现它们。请务必在测试文件的末尾添加行,指示解释程序使用main
中内置的unittest
函数。
if __name__ == '__main__':
unittest.main()
请注意,您可以选择一次仅在一个类中运行测试:
python tests.py KnownValues
python tests.py Test2
在PyCharm中,它应该自动发现所有测试类。您仍然可以选择一次只运行一个类。选择“运行” - >“编辑配置”以查看当前正在运行的选项。使用命令行参数可以控制运行更少或更多的测试。
如您所见,您可以选择运行脚本,类或方法。请务必设置运行配置的名称,使其反映您正在运行的范围。