Python 如何只运行测试套件中添加的测试用例,而不是类中所有可用的测试用例?

Python 如何只运行测试套件中添加的测试用例,而不是类中所有可用的测试用例?,python,python-unittest,test-suite,Python,Python Unittest,Test Suite,我已经写了一个测试套件 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 a

我已经写了一个测试套件

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

中的所有测试用例。您可以在单元测试的顶部添加标记,这是一种称为xfail的东西,它将跳过测试

例如,

下面的示例跳过测试功能3()

与使用
skipif
一样,您还可以标记您对某个特定故障的预期 站台:

示例

import pytest
xfail = pytest.mark.xfail

@xfail
def test_func1():
    assert 0

@xfail(run=False)
def test_func2():
    assert 0

您可以将标记放在单元测试的顶部,称为xfail的东西将跳过测试

例如,

下面的示例跳过测试功能3()

与使用
skipif
一样,您还可以标记您对某个特定故障的预期 站台:

示例

import pytest
xfail = pytest.mark.xfail

@xfail
def test_func1():
    assert 0

@xfail(run=False)
def test_func2():
    assert 0

我还假设运行python-m unittest-v myTestsuite将只执行定义的测试套件中的测试用例。但是,直接调用myTestsuite.py测试模块(即不将模块作为参数传递给unittest库模块)应该会产生您想要的结果。尝试运行以下命令:

python myTestsuite

注意:您需要将“verbosity=1”参数传递给TextTestRunner函数,而不是在命令行上使用“-v”(或者修改myTestsuite.py以获取“-v”参数并将其传递给TextTestRunner)

我还假设运行python-m unittest-v myTestsuite将只执行定义的测试套件中的测试用例。但是,直接调用myTestsuite.py测试模块(即不将模块作为参数传递给unittest库模块)应该会产生您想要的结果。尝试运行以下命令:

python myTestsuite


注意:您需要将“verbosity=1”参数传递给TextTestRunner函数,而不是在命令行上使用“-v”(或者修改myTestsuite.py以获取“-v”参数并将其传递给TextTestRunner)

如果不想运行单元测试,您可以跳过单元测试。看看pytest,它有很多优点convenient@MaxNoe,由于某些限制,我们需要使用unittest而不是pytest。@Lethal程序员我们需要使用unittest框架。如果您不想运行单元测试,您可以跳过单元测试。看看pytest,它有很多convenient@MaxNoe,由于某些限制,我们需要使用unittest而不是pytest。@我们需要使用unittest framework.XFail:将测试函数标记为预期失败。xfail标记也可以使用,但其主要目的是用于预期的故障。致命的,我们在这方面不需要任何标记,因为我们已经在套件中添加了选择性测试用例,使用标记将变得多余。或者,如果xfail和skipif是多余的,您可以创建自定义标记。看看这个网站:致命的,我们不需要这个测试套件案例的标记,其中添加的测试用例是有选择的。只需要注意执行。您发布的答案很好,但很抱歉,这对您没有帮助。您发布的内容都是关于跳过一些测试用例,我们不需要使用标记明确地执行此操作,请理解它已经注意的问题,即使用addTest()方法选择测试用例。XFail:将测试函数标记为预期失败。xfail标记也可以使用,但其主要目的是用于预期的故障。致命的,我们在这方面不需要任何标记,因为我们已经在套件中添加了选择性测试用例,使用标记将变得多余。或者,如果xfail和skipif是多余的,您可以创建自定义标记。看看这个网站:致命的,我们不需要这个测试套件案例的标记,其中添加的测试用例是有选择的。只需要注意执行。您发布的答案很好,但很抱歉,这对您没有帮助。您发布的内容都是关于跳过一些测试用例,我们不需要使用标记明确地执行此操作,请理解它已经注意使用addTest()方法选择测试用例的问题。