基本上我正在尝试做类似以下的事情:
import randomimport pytestWORDS = ["foo","bar"]def test_maybe_recursive(): word1 = random.choice(WORDS) word2 = random.choice(WORDS) # Ensure that 'word1' and 'word2' are different if word1 == word2: print("The two words are the same. Re-running the test...") test_maybe_recursive() assert word1 != word2 # The actual test,which requires 'word1' and 'word2' to be differentif __name__ == "__main__": test_maybe_recursive() # pytest.main([__file__,"-s"]) # This sometimes fails
在这个例子中,我使用递归来确保在test_maybe_recursive中,word1和word2是不同的.但是,在if __name__ ==“__ main__”块中,如果我用pytest.main调用替换简单函数调用,则测试失败(一半时间),因为递归不起作用.
如何使测试’重启’本身,以便该示例适用于Pytest?
解决方法 您应该解决测试的正确设置,而不是尝试将流量控制添加到测试运行器.避免在测试代码中使用逻辑,因为那时您必须测试测试.你可以使用random.sample而不是random.choice:
word1,word2 = random.sample(WORDS,2)
假设在WORDS中没有重复,它们保证是人口中的唯一选择.
总结以上是内存溢出为你收集整理的python – 是否有命令使Pytest重启?全部内容,希望文章能够帮你解决python – 是否有命令使Pytest重启?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)