pytest:从代码运行测试,而不是从命令行运行

时间:2017-04-21 08:50:35

标签: python python-3.x unit-testing pytest

是否可以使用pytest从代码运行测试?我确实找到了pytest.main,但它只是代码中提供的命令行界面。我想从代码中传递一个测试类/函数。

在单元测试中它可能是这样的:

from unittest import TestLoader, TestCase, TestResult


class TestMy(TestCase):
    def test_silly(self):
        assert False

runner = TestLoader()
test_suite = runner.loadTestsFromTestCase(TestMy)
test_result = TestResult()
test_suite.run(test_result)
print(test_result)

1 个答案:

答案 0 :(得分:2)

是的,例如,这样是可能的:

from pytest import main


class TestMy:
    def test_silly(self):
        assert False


main(['{}::{}'.format(__file__, TestMy.__name__)])

您可以将任何参数传递给main,就像从命令行中调用一样。