py.test在哪里以及如何寻找固定装置?我在同一个文件夹的两个文件中有相同的代码。当我删除conftest.py时,无法找到正在运行test_conf.py(也在同一文件夹中。为什么sonoftest.py没有被搜查?
# content of test_sample.py
def test_answer(cmdopt):
if cmdopt == "type1":
print ("first")
elif cmdopt == "type2":
print ("second")
assert 0 # to see what was printed
import pytest
def pytest_addoption(parser):
parser.addoption("--cmdopt", action="store", default="type1",
help="my option: type1 or type2")
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
import pytest
def pytest_addoption(parser):
parser.addoption("--cmdopt", action="store", default="type1",
help="my option: type1 or type2")
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
医生说
http://pytest.org/latest/fixture.html#fixture-作用
我也遇到过同样的问题,花了很多时间找到了一个简单的解决方案,这个例子适用于其他和我有类似情况的人。
import pytest
pytest_plugins = [
"some_package.sonoftest"
]
def pytest_addoption(parser):
parser.addoption("--cmdopt", action="store", default="type1",
help="my option: type1 or type2")
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
import pytest
@pytest.fixture
def sono_cmdopt(request):
return request.config.getoption("--cmdopt")
def test_answer1(cmdopt):
if cmdopt == "type1":
print ("first")
elif cmdopt == "type2":
print ("second")
assert 0 # to see what was printed
def test_answer2(sono_cmdopt):
if sono_cmdopt == "type1":
print ("first")
elif sono_cmdopt == "type2":
print ("second")
assert 0 # to see what was printed
您可以在此处找到类似的示例:https://github.com/pytest-dev/pytest/issues/3039#issuecomment-464489204和其他https://stackoverflow.com/a/54736376/6655459
官方pytest文档中的描述:https://docs.pytest.org/en/latest/reference.html?highlight=pytest_plugins#pytest-插件
需要注意的是,some\u package.test\u sample“
中提到的各个目录需要有\uuu init\uuuuuuuuupy
文件,以便pytest
加载插件
以下是py.test查找夹具(和测试)的顺序和位置(取自此处):
py.test在工具启动时以以下方式加载插件模块:
>
通过加载所有内置插件
通过加载通过setuptools入口点注册的所有插件。
通过预扫描命令行中的-p name
选项,并在实际的命令行解析之前加载指定的插件。
通过加载由命令行调用推断的所有conftest.py
文件(测试文件及其所有父目录)。请注意,默认情况下,子目录中的conftest.py
文件不会在工具启动时加载。
通过递归加载conftest.py
文件中pytest_plugins变量指定的所有插件
默认情况下,py.test将导入conftest.py
以及与Python\u文件
模式匹配的所有Python文件。如果您有一个测试夹具,则需要从conftest.py
或依赖它的测试文件中包括或导入它:
from sonoftest import pytest_addoption, cmdopt
问题内容: 我需要将JNDI名称添加到hibernate中的活动连接池的代码。我已经在Jboss服务器中将连接池配置为JNDI名称为“ EmployeeDB” 如何在hibernate.cfg.xml中配置它? 如果我使用的是Hibernate 4 Final版本,请给我hibernate.cfg.xml的代码。 问题答案: 在Jboss服务器中配置的数据源JDNI名称由属性指定。 基本应如下所示
问题内容: 我想提供有关正在使用的JAXP实现以及从中加载哪个JAR文件的诊断信息。 实现此目的的一种方法是在的实例中创建,然后检查该类的属性: 是否有更好的方法可以实现这一目标,而不必创建一个? 问题答案: 在没有实际创建实例的情况下,很难预测将要加载哪些具体的JAXP工厂实现,因为选择实现的过程非常困难。 从官方JAXP常见问题解答(问题14)中: 当应用程序想要创建一个新的JAXP 实例时,
问题内容: 我想开始为我的Python代码编写单元测试,而py.test框架听起来比Python捆绑的unittest更好。因此,我在项目中添加了“ tests”目录,并在其中添加了test_sample.py。现在,我想配置PyCharm以运行“ tests”目录中的所有测试。 据称,PyCharm在其测试运行程序中支持py.test。您应该能够创建运行/调试配置来运行测试,并且PyCharm据
问题内容: 如何编写此代码以备份父级2个级别以查找文件? 问题答案: 试试这个: 注意相对路径开始处的正斜杠。
问题内容: 我需要在Java中的arraylist中获取最小值的索引值。我的arraylist包含多个浮点数,我正在尝试一种获取最小浮点数的索引号的方法,以便可以在代码的其他地方使用该索引号。我是初学者,所以请不要讨厌我。谢谢! 问题答案: 您可以使用Collections.min和List.indexOf: 如果您只想遍历列表一次(以上内容可能遍历两次):
问题内容: 我在桌面应用程序中使用spring + hibernate。 我正在尝试使用分层实现来构建它,所以我有: GUI层–call- >服务层–call-> DAO层 一个更好地说明我的情况的小例子: 问题是:谁抛出异常并由谁处理? 我认为DAO必须抛出第一个异常,然后服务层将其抛出,最后GUI层处理该异常,这样我才能向用户显示消息,这很好吗?有没有一种方法可以使用spring构建一些Exc