1

我们有一个集群,其中只有一个服务器(主服务器)可以返回有意义的结果。主人是自动选择的,在测试时我不知道谁是主人,谁不是。在我们的测试中,我们使用了 testinfra,它为集群中的每个主机提供了一个夹具“主机”。

我们有一个看起来像这样的测试:

def test_cluster(host):
    assert host.run_command('cluster --is_ok').stdout == 'OK'

问题是有N台主机,只有一台能返回OK,别人说“我不是高手”。

正常输出如下所示:

test_cluster[host1] .... FAIL
test_cluster[host2] .... OK
test_cluster[host3] .... FAIL
test_cluster[host4] .... FAIL

test_cluster如果任何测试通过(如果所有测试都失败,则失败),我想找到一种方法将测试标记为通过。

如果 testinfra 对于测试来说太多了,这里只有 pytest 的更简洁的例子:

@pytest.fixture.parametrize("num", [0, 0, 1, 0])
def test_example(num):
     asssert num > 0

1如果“num”夹具中至少有一个,我需要 pytest 才能通过。

4

0 回答 0