我以下列方式编写测试用例。
# content of test_class.py
class TestClass(object):
def test_one(self):
x = "this"
assert 'h' in x
def test_two(self):
x = "hello"
assert hasattr(x, 'check')
test_two依赖于test_one,因此执行的顺序很重要,当您在类中对测试进行分组时,执行测试执行顺序的约定是什么?
答案 0 :(得分:0)
默认情况下,测试将按照类/模块中定义的顺序执行。在你的情况下:
test_class.py::TestClass::test_one PASSED
test_class.py::TestClass::test_two PASSED
一般来说,编写依赖于彼此的测试是一种不好的做法。如果以后的测试是并行运行的,那么您将拥有flakiness
,或者如果您安装了一个用于随机测试执行的插件,例如: https://pypi.python.org/pypi/pytest-randomly,或者如果您离开项目,其他人将不得不调试将开始失败的测试。
我建议将两个测试组合成一个。重要的是你有一些测试场景。如果您有2个测试,那么这个问题是否重要?如果您对代码仍然有相同的信心,那么它是否重要?
答案 1 :(得分:0)
您可以使用pytest_collection_modifyitems
挂钩来根据需要更改订单。