- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经测试在某些可执行文件上运行子进程并测试标准输出结果。
所以我用
#conftest.py
def pytest_addoption(parser):
parser.addoption("--executable", action="store")
@pytest.fixture(scope="session", autouse=True)
def pass_executable(request):
try:
return request.config.getoption("--executable")
except AttributeError:
pass
test_update_path(pass_executable)
更新一个全局变量 PATH,它有效。
# test.py
PATH = 'defaultpath/app'
def test_update_path(pass_executable):
global PATH
PATH = pass_executable
print("Gloabl path is update to: ")
print(PATH)
def test_1():
# This will work
print("Now next")
print(PATH)
cmd = [PATH]
stdout, stderr = run_subprocess(cmd)
assert stdout == 'some expected result'
@pytest.mark.parametrize("args", [1, 2, 3])
def test_2(path, args):
print("Now next")
print(PATH)
cmd = paramparser(PATH, args)
stdout, stderr = run_subprocess(cmd)
assert stdout == 'some expected result'
if __name__ == '__main__':
pytest.main()
pytest --executable=newpath/app -s
会工作正常,但这是一个丑陋的黑客。更重要的是,它运行了一个没有进行任何实际测试的测试。这也是有问题的,因为参数不是可选的。没有设置--executable。路径将是
NoneType
而不是原来的默认路径。
最佳答案
您不需要全局变量,只需使用 request
fixture 作为测试参数来访问命令行参数,就像你在 pass_executable
中已经拥有的一样.这是我将如何更改两个测试:
def test_1(request):
cmd = [request.config.getoption("--executable")]
stdout, stderr = run_subprocess(cmd)
assert stdout == 'some expected result'
@pytest.mark.parametrize("arg", [1, 2, 3])
def test_2(request, arg):
cmd = paramparser(request.config.getoption("--executable"), arg)
stdout, stderr = run_subprocess(cmd)
assert stdout == 'some expected result'
request
一样。 :
@pytest.fixture
def executable(request):
return request.config.getoption("--executable")
def test_1(executable):
cmd = [executable]
stdout, stderr = run_subprocess(cmd)
assert stdout == 'some expected result'
@pytest.mark.parametrize("arg", [1, 2, 3])
def test_2(executable, arg):
cmd = paramparser(executable, arg)
stdout, stderr = run_subprocess(cmd)
assert stdout == 'some expected result'
关于python - pytest 如何同时使用 getoption 和 parameterize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61543761/
我偶然发现了这个错误,但找不到问题所在: The method compute(Set, Set) in the type JaccardSimilarity is not applicable fo
我有一些测试,我想使用一些需要在收集阶段进行参数化的参数和一些需要在设置时进行参数化的参数进行参数化。我无法使用metafunc.parametrize 在 pytest_generate_test
我有一个 AbstractCacheBlock,我想定义一个 CacheSet 类,其中包含许多扩展 AbstractCacheBlock 的类。我相信我想要的是这样的 public class Ca
我想使用 Jenkins 中的参数化调度程序插件来使用 cron 运行多个因参数不同而不同的作业。可悲的是,文档很糟糕。谁能指导我如何真正让它发挥作用? 最佳答案 这个插件的作用: parameter
我遇到了这个错误 Argument 1 passed to Illuminate\Database\Grammar::parameterize() must be of the type array,
我想创建一个方法来接受字符串数组类型的“参数化”输入对象。像这样的东西: public void MyMethod(params string[][] input) { //...do stuf
我正在尝试使用Criterion框架编写一个基于一些字符串值的参数化测试。作为一个MRE,并遵循文档中显示的示例,我写了以下内容:。但是,当我运行测试时,它崩溃了,输出如下:。但是,当我尝试基于一组i
我有一个 OCaml 程序,其中模块有很多依赖于参数的功能,即“维度”。此参数在代码运行开始时确定一次,并保持不变直到终止。 我的问题是:我怎样才能把代码写得更短,这样我的函数就不需要一个“维度”参数
我正在尝试创建一个实现黑莓 Comparator 的类这样我就可以轻松地对二维数组进行排序。 import net.rim.device.api.util.Comparator; class A
这就是我的困境。我一直在使用 Selenium、TestNG 和 iText 从自动化测试运行的结果中生成漂亮的 PDF 报告,但最近有人告诉我,他们不想要 TestNG 与 JUnit 的竞争库,并
我正在使用 Katalon Studio 测试 Web 应用程序,测试步骤包括通过文件选择器将文件加载到应用程序中。我正在使用 WebUI.uploadFile() 来执行此操作,但我发现它需要仅一个
这是我简单的 JUnit 参数化测试,我用 testdata 解析 csv,并尝试将其提供给 Parametrized.Parameters,但是当我运行它时,我的测试因 java.lang.Ille
我有一个应用程序页面,其中有 52 个连续命名的文本框,用于输入和显示一年的每周需求数字。我的问题是有没有一种方法可以“参数化”控件(在本例中为文本框)名称,以便我可以遍历它们而不必列出所有 52 个
我是 Spring 的新手,对它的功能只了解了皮毛。 我有一种情况需要使用 @Scheduled 注释来设置重复任务。速率被指定为对象中的成员字段,该对象传递给封装表示任务的方法的类。 我使用了允许访
在 Jenkins 中,我使用 SSH 插件通过 ssh 在远程机器上运行 shell 命令。我已将我的 SSH 站点添加到全局配置中。 但是在我的作业配置的“使用 ssh 在远程主机上执行 shel
我是 py.test 的新手。到目前为止,我喜欢我所看到的并希望将其集成到我们的 CI 过程中。 目前我们在测试中使用了一种不同的参数化方案,我将简要解释一下: 我们不是对每个测试进行参数化,而是对每
是否可以使用 & 符号编写参数化函数? 这是 Dave Thomas 的 Programming Elixir 书中的参数化函数示例 title = fn (title) -> ( fn (name)
我们在项目内部运行 Hudson 构建服务器。每次服务器部署新版本时,我们都会发送电子邮件。 我希望这封电子邮件包含更多信息,包括用户名和构建原因。 来自 Parameterized builds 上
这是一个困扰我一段时间的问题,我想知道这里是否有人可以提供帮助。 我有一个名为 lambdaLVar 的语言的 PLT Redex 模型,它或多或少是一种花园式的无类型 lambda 演算,但扩展了一
我已经测试在某些可执行文件上运行子进程并测试标准输出结果。 所以我用 #conftest.py def pytest_addoption(parser): parser.addoption("
我是一名优秀的程序员,十分优秀!