- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些测试,我想使用一些需要在收集阶段进行参数化的参数和一些需要在设置时进行参数化的参数进行参数化。我无法使用metafunc.parametrize 在 pytest_generate_test Hook 中,因为我需要一些固定装置具有 indirect=True 以将 argname 作为 request.param 传递,但其他参数需要具有 indirect=False。
有什么办法吗?
这是我的测试是什么样子以及我想做什么的示例:
def pytest_generate_tests(metafunc):
if metafunc.function.__name__ == 'test_example':
argnames = []
argvalues = []
parameters = getattr(metafunc.function, 'paramlist', ())
for p in parameters:
if type(p) == list:
argnames = tuple(['myfixture'] + p)
else:
argvalues.append = tuple(['std'] + p['argvalues'])
argvalues.append = tuple(['pro'] + p['argvalues'])
# I want to do the following, but it won't work since some of the
# args need indirect set to true and some need indirect set to false.
metafunc.parametrize(argnames, argvalues, indirect=True)
elif 'myfixture' in metafunc.fixturenames:
# we have existing tests which use the fixture, but only with
standard
metafunc.parametrize("myfixture", "std")
else:
# we have existing tests which use older style parametrization,
non-fixture
for p in getattr(metafunc.function, 'paramlist', ()):
metafunc.addcall(funcargs=p)
def params(decolist):
def wrapper(function):
function.paramlist = decolist
return function
return wrapper
@pytest.fixture
def myfixture(request):
If request.param == 'std':
myfix = SomeObject()
elif request.param == 'pro':
myfix = SomeOtherObject()
def fin():
myfix.close()
request.addfinalizer(fin)
return myfix
@params([
['color', 'type'],
{ 'argvalues': [ 'blue', 'cat'] },
{ 'argvalues': ['pink', 'dog'] }
])
def test_example(myfixture, color, type):
# this is the new test we want to add
def test_something(myfixture):
# existing test which only uses std fixture
@params([
{'arg1': 1, 'arg2': 2},
{'arg1': 3, 'arg2': 5}
])
def test_old_style(arg1, arg2):
# existing tests which don't use fixtures
感谢您阅读本文!我知道它很长。
最佳答案
根据设计,所有参数化都发生在收集时
关于parameterization - pytest 测试需要在收集阶段和设置时进行参数化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775118/
我正在尝试获取有关某个特定人员的最新信息,并且我正在使用类似的查询 SELECT * FROM Table WHERE Name LIKE 'Peter' ORDER BY ID DESC LIMIT
我有一个视频 View ,正在播放视频。我想停止视频并在触摸视频 View 时返回。我想我必须这样做。 videoView.setOnTouchListener(new OnTo
假设您正在为某种目的(例如数据结构)制作一个经过严格测试的相当健壮的 API。其他人将在他们自己的编码项目中下载和使用您的库,因此您希望它非常密封。 在您的 API 中,您有许多这样的函数调用: vo
想知道是否有办法可以在没有构造函数的情况下渲染组件。 下面是我的 onClick 代码。我的目标是当您单击按钮时进行渲染以使按钮消失。我不确定是否有办法在不创建的情况下渲染它 constructor
我目前正在这样做。 有更好的方法吗? public Cursor selectRostersForTeam(Activity activity, int teamId) { final Str
我们遇到了遗留代码的问题。有一个“用户名”字段的验证集,验证它的长度并确保它至少包含一个字母: @Column(name = "username") @Size(min = 4, max = 40)
所以我有一个通过 .fetch() 填充的模型,我的问题是。它要么总是 PUT,要么总是 POST,但 .save() 永远不会表现得“智能”。 该模型是通过提取填充的,如果从提取返回任何内容,它最多
到目前为止,我已经能够为 Azure Functions 设置单元测试并且效果很好。但是对于我当前的项目,我需要使用动态或命令式绑定(bind)。 https://learn.microsoft.co
我有一个很大的本地文件。我想使用 boto 库将该文件的 gzip 版本上传到 S3。该文件太大,无法在上传前将其有效地 gzip 到磁盘上,因此应在上传期间以流式方式 gzip。 boto 库知道一
我正在使用 python 的 slumber 库对服务进行 HTTP 调用。这就是它的样子。我需要对此 URL https://sample-billing-api.test/2/billing-ac
使用 manifest v2 可以正常工作。但是使用 manifest v3 我收到错误“ReferenceError: localStorage is not defined” manifest.j
我是一名优秀的程序员,十分优秀!