python - 使用 pytest 控制运行哪些测试

标签 python unit-testing pytest

我正在考虑将一些 unittest.TestCase 测试转换为 Pytest 测试以利用 Pytest 的固定装置。 unittest 的一项功能是创建测试套件并运行它们的能力,但我无法轻易在 Pytest 中找到与之对应的功能。我目前经常做这样的事情:

import unittest

class TestSomething(unittest.TestCase):
    def test_1(self):
        self.assertEqual("hello".upper(), "HELLO")

    def test_2(self):
        self.assertEqual(1+1, 2)

if __name__ == "__main__":
    suite = unittest.TestSuite()
    # suite.addTest(TestSomething('test_1'))
    suite.addTest(TestSomething('test_2'))
    runner = unittest.TextTestRunner()
    runner.run(suite)

通过使用 addTest 注释行,我可以轻松选择要运行的测试。我如何使用 Pytest 做类似的事情?

最佳答案

您可以使用-k 参数来运行特定的测试。例如

# put this in test.py
import unittest

class TestSomething(unittest.TestCase):
    def test_1(self):
        self.assertEqual("hello".upper(), "HELLO")

    def test_2(self):
        self.assertEqual(1+1, 2)

运行类 TestSomething 中的所有测试可以像这样完成:

py.test test.py -k TestSomething

只运行test_2:

py.test test.py -k "TestSomething and test_2"

documentation 中的更多示例

关于python - 使用 pytest 控制运行哪些测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41853509/

相关文章:

python - 我在使用 Uber Python API 时遇到问题

python - sklearn GMM 分类器的分类输出错误

javascript - 在 "react + react-route"堆栈上进行单元测试

python - 如果多个测试有特定异常,则停止 pytest 测试

python - 使用函数参数化 pytest

Python:多维数组的迭代是不是超慢?

python - 将 numpy 列表转换为列向量

c# - 单元测试用例生成器

gmock 可以用于 stub C 函数吗?

python - 多个异步单元测试失败,但一一运行会通过