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

7

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

在unittest中,可以通过以下方式实现:

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个回答

7

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

from pytest import main


class TestMy:
    def test_silly(self):
        assert False


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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接