我正在使用Selenium和PYTEST测试网站。我想在测试失败时(并且仅在失败时)截取页面的屏幕截图。
有没有办法可以做到这一点?对于这个(或者我找不到),文档很安静。我会假设它会是这样的
request.function.failed
它会返回一个布尔值或其他东西。
这就是我想要做的:
@pytest.fixture()
def something(request):
if request.function.failed:
print "I failed"
当然,这将被添加到终结器中。可以吗?使用pytest 2.3.3
谢谢。
它可以完成,但不能直接完成。我刚才补充道 在文档中添加了一个示例。默认情况下使这更容易,即不需要使用conftest.py钩子可能是有意义的。如果您同意,请 提出问题。
它可以完成,但不能直接完成。我刚才补充道 在文档中添加了一个示例。默认情况下使这更容易,即不需要使用conftest.py钩子可能是有意义的。如果您同意,请 提出问题。
我必须在每个模块级别上做类似的事情。在检查现有解决方案后,我对它们的复杂性感到有些惊讶。以下是我提出的解决此问题的方法:
import pytest
@pytest.fixture(scope="module", autouse=True)
def failure_tracking_fixture(request):
tests_failed_before_module = request.session.testsfailed
yield
tests_failed_during_module = request.session.testsfailed - tests_failed_before_module
它可以通过使夹具成为功能级别来调整以实现您想要的功能。
希望这可以帮助!