我正在考虑将一些 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/