我写了一个测试套件。
myTestsuite.py
import unittest
from myTestCase2 import MyTestCase2
from prime_num_validation import Prime_Num_Validation
def my_test_suite():
suite = unittest.TestSuite()
suite.addTest(MyTestCase2('test_greaterCheck2'))
#To add only test case: test_greaterCheck2 from the MyTestCase2 class
suite.addTest(Prime_Num_Validation('test_prime_check'))
#To add only test case: test_prime_check from the MyTestCase2 class
return suite
if __name__ == '__main__':
runner = unittest.TextTestRunner()
runner.run(my_test_suite())
现在当我使用命令行运行:python -m unittest -v myTestsuite
时,它运行MyTestCase2
类的所有测试用例,实际上有3个TC,但我们只添加了3个中的一个套件。
我们应该如何避免调用所有测试用例并仅执行套件中存在的测试用例。
当我使用Pycharm编辑器运行时,
它再次执行MyTestCase2
的所有测试用例。
答案 0 :(得分:0)
您可以在单元测试的顶部放置标记,调用xfail会跳过测试。
例如
以下示例跳过test_function3()
import sys
def test_function1():
def test_function2():
@pytest.mark.skipif(sys.version_info < (3,3),
reason="requires python3.3")
def test_function3():
如需参考,请浏览本网站,您将找到更多信息py.test skipif
我上面提供的链接也有使用xfail标记的示例。
您也可以使用xfail标记或创建自己的自定义标记。 xfail表示您希望测试失败。
您可以使用以下命令运行xfail test。
pytest --runxfail
与skipif
一样,您也可以标记您对特定故障的预期
平台:
示例强>
import pytest
xfail = pytest.mark.xfail
@xfail
def test_func1():
assert 0
@xfail(run=False)
def test_func2():
assert 0
答案 1 :(得分:0)
我还假设运行 python -m unittest -v myTestsuite 只会执行定义的测试套件中的测试用例。但是,直接调用 myTestsuite.py 测试模块(即,不将模块作为参数传递给unittest库模块),应该会产生您想要的结果。尝试运行以下内容:
python myTestsuite
注意:您将需要将“ verbosity = 1”参数传递给TextTestRunner函数,而不是在命令行上使用“ -v”(或修改myTestsuite.py以采用“ -v”参数并将其传递给TextTestRunner )