在 unittest 中,我可以在一个类中使用 setUp
变量,然后这个类的方法可以选择它想要使用的任何变量..。
class test_class(unittest.TestCase):
def setUp(self):
self.varA = 1
self.varB = 2
self.varC = 3
self.modified_varA = 2
def test_1(self):
do_something_with_self.varA, self.varB
def test_2(self):
do_something_with_self_modified_varA, self.varC
所以在 unittest 中,很容易将一组测试放在一个类下,然后为不同的方法使用许多不同的变量(varA
和 varB
)。在 pytest 中,我在 conftest.py
中创建了一个 fixture,而不是在 unittest 中创建一个类,如下所示..。
@pytest.fixture(scope="module")
def input1():
varA = 1
varB = 2
return varA, varB
@pytest.fixture(scope="module")
def input2():
varA = 2
varC = 3
return varA, varC
对于两个不同的函数,我将这个 input1和 input2提供给不同文件中的函数(比如 test _ this. py)。以下是基于以上信息提出的问题..。
因为我不能在 conftest.py
中声明局部变量,因为我不能简单地导入这个文件。这里有没有更好的方法来声明可以在 test_this.py
的不同函数中使用的不同变量?在我对这些变量的实际测试中,我有五种不同的配置,在 conttest.py 中定义了许多不同的 fixture,并在 test _ this. py 的五个不同函数中使用它们作为函数参数,这听起来很痛苦,我宁愿回到 unittest 类结构,定义我的变量并选择我想要的。
我是否应该在 test_this.py
中声明全局变量,然后按照我想要的方式在函数中使用它们?看起来不太像蟒蛇。此变量仅由此文件中的函数使用。
Let's say I have test_that.py
and test_them.py
as well. If I have some shared variables between these different files, how would I declare them ? just create a file called variables.py in the directory where all these test files are and do an import whenever I need ? This way I can keep all data in a separate.
我的印象是 Pytest 不鼓励使用类来组织你的函数吗?我在网上读到的每个例子,似乎都只使用了一些 fixture 函数。在 pytest 中定义类和方法并组织测试的配置是什么?
我有一个测试场景,我必须将一个函数的结果用到另一个函数中。使用 pytest,我有一个位于函数末尾的断言,它不是返回值,所以我不能将这个函数用作 fixture。我该怎么做?我知道这不是一个好的做法,我的一个测试依赖于另一个,但是有一个周围的工作?