Pytest的新手,很难弄清楚如何正确使用灯具

时间:2018-06-01 21:33:25

标签: python pytest

尝试重构一些旧的可怕测试代码并使用Pytest进行重构。测试看起来像这样:

Test/
    Tests_a/
        test_a_foo.py
        test_a_bar.py
        test_a_baz.py
   Tests_b/
       test_b_1.py
       test_b_2.py
       test_b_3.py

我们想分别运行Tests_a和Tests_b,所以我可以调用pytest Tests_a和pytest Tests_b。

我们需要生成一些值,并在大多数测试中使用过。

common_value1 = "something" + random() common_value2 = "something2" + random() ...

现在我正在通过在conftest.py中将每个变量作为自己的夹具来实现。所以我有

@pytest.fixture(scope="session")
def common_value1():
    return "something" + random()

到目前为止,这似乎有效,但我想知道是否有更好的方法?我们有很多这些常见的值,因此用这些变量来填充这个变量很烦人。

`

`

另一个问题是我有一些常见的实用功能,我想在测试的根级别突破。我遇到的问题是其中一些实用程序需要这些常用值。非测试功能是否可以获得灯具?

所以我util.py有类似的东西:

def do_common_thing(passed_in_value):
    print(common_value1 + passed_in_value)

获取common_value1的正确方法是什么?我已经尝试将此函数转换为一个夹具并将common_value1作为参数,但这似乎没有效果。我让它工作的唯一方法是让测试本身得到common_value1并将其传递给do_common_thing(),但是当有很多这些值时,这尤其令人讨厌。

0 个答案:

没有答案