我正在使用PyTest框架编写和运行我的测试。
我实现了一个具体的记录器:
class Logger(object):
class LogFormats:
...
def __init__(self, testname ,setup ,silent=True):
"""
creating concrete logger for pytest.
the logger will create a file for the test in specific test directory in quali FS and will
write to this file all test log output (colored).
:param: testname: test name - recieved from pytest fixtures (command line parameters)
:param: setup: test setup - recieved from pytest fixtures (command line parameters)
:param: silent: log test in silent mode (info only) or not silent mode (everything is logged)
:param: root_password: password for root user
"""
....
...
在conftest.py文件中,我编写了当请求此记录器时将调用的函数(创建记录器夹具)
@pytest.fixture(scope="module",autouse=True)
def logger(request):
setup = request.config.getoption('--setupname')
logger = Logger(testname=request.node.name, setup=setup)
return logger
现在,我的问题是如何使用pytest使这个具体的记录器成为全局的?
这意味着我不想像这样将它作为参数传递给test函数:
def test_logger(other_fixture,logger):
但仍然可以在test_logger
测试函数中使用它(如全局变量)
你可以
@pytest.mark.usefixtures("logger")
def test_logger(other_fixture):
问题内容: 通常,我会写一个在每个方法中都使用pytest固定装置的测试类。这是一个例子。我希望能够避免必须在每种方法的签名中写入灯具名称。不是干的。如何才能做到这一点? 我希望能够通过将灯具作为测试类的属性来访问灯具。在此示例中,我希望将Google固定装置视为TestGoogle的属性。这可能吗? 问题答案: 当然,只需使用自动使用的夹具即可。这是docs中的相关位置。在您的示例中,更改将引入
我有一个类似这样的pytest测试: 现在,作为重构的一部分,我移动了这一行: 放入它自己的夹具中(在conftest.py文件中),因为它在其他地方使用。但是,除了直接导入fixture函数外,是否有其他方法在测试中引用它?我知道funcargs通常是调用fixture的方式,但是在本文中,当我想要调用fixture时,我不在测试函数中。
谷歌在搜索答案方面让我失望,所以我现在转到这里。 我正在使用pytest和selenium设置一个自动web测试套件。在运行测试之前,我想先编写代码来检查chromewebdriver的更新。我认为最好的方法是使用fixture和webdriver\u manager模块。 我从以下开始,它起作用了 但每次测试都要检查webdriver的更新,这确实会减慢速度。因此,我尝试了这一点,但不知道如何让
问题内容: 我正在使用tess4j(Tesseract的Java包装器)。我也安装了普通的Tesseract。我不确定tess4j是如何工作的,但是由于它带有tessdata文件夹,因此我可以假设您会将语言数据文件放在那里。但是,仅当语言数据文件位于“真实的” tessdata文件夹(与tesseract一起提供的文件夹,而不是tess4j)中时,tess4j才能工作。如果删除该文件夹,则会收到以
我试图在类skipif装饰器中使用pytest夹具(范围=模块),但我收到一个错误,说夹具未定义。这可能吗? conftest.py有一个带有名为“目标”的模块范围的夹具,它返回一个货币目标对象。货币目标对象有一个函数isORDSupport。test_mytest.py有一个类Test_MyTestClass,其中包含十几个测试函数。我想跳过Test_MyTestClass中的所有测试,如果夹具
问题内容: 我已经创建了文件夹并在其中初始化了virtualenv实例。 当我运行时,它将按原样显示已安装的软件包。 现在我想重命名为。 但是,当我跑步时 提示未安装pip。如何在不破坏环境的情况下重命名项目文件夹? 问题答案: 您需要调整安装以使用相对路径。为此提供了选项。从文档: 通常,环境与特定路径相关。这意味着您无法移动环境或将其复制到另一台计算机。您可以使用以下命令修复环境以使其可重定位