问题标签 [parametrized-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何对具有多个参数的夹具进行参数化
我有一个我想request.param
多次使用的夹具。
我该怎么做?如果我执行上述操作(使用两个request.param
),然后在我的测试函数中使用它,如下所示:
我收到此错误:
在“参数化”中,名称的数量 (2): ['get_settings', 'expected'] 必须等于值的数量 (3)
我不确定它是否与get_user
我传递给测试功能的第二个夹具()有关。但是我该如何解决呢?
更新
None
是期望值,我把另外两个放在元组中。但在这种情况下,我收到以下错误:
测试设置失败
../conftest.py:76:
pydantic/env_settings.py:36:在 pydantic.env_settings.BaseSettings 中。初始化 ???
???
E pydantic.error_wrappers.ValidationError:设置 E TOKEN_KEY 的 2 个验证错误
预期 E str 类型 (type=type_error.str)
E TOKEN_PASSWORD
预期 E str 类型 (type=type_error.str)
pydantic/main.py:406:验证错误
python - PyTest:如何从函数中获取参数化参数列表
给定一个同时具有固定装置和参数化参数的测试函数,如何获取参数化参数及其值的字典?request.node.name
我可以使用or访问序列化的值列表os.environ.get('PYTEST_CURRENT_TEST')
,但这并没有给出参数的相应名称。PyTest 打印它们,但我需要在自定义错误处理挂钩中访问它们。
我想要的是以某种方式{'a': False, 'b': 1}
进入test_foo
。
recursion - 如何在 pytest 参数化上强制停止条件?
我遇到了 pytest 参数化的问题 - 递归调用永远不会停止。
我们创建了一个自定义标记并将其多次分配给同一个测试。
在 pytest 生成器中,标记被参数化,以便每个标记运行一次测试。
当存在多个消息代理标记时,测试会失败,因为递归调用永远不会停止。
我想通过强制停止条件来解决这个问题,但我很乐意听到任何替代解决方案。
这是使用 2 个不同的消息代理标记的测试的错误:
junit - JUnit - 参数化测试 - 停止编译
我在下面编写的代码在构造函数或@Before(取决于隐藏)之前停止编译。没有错误,它甚至不能运行一次。
我用教程做到了: https ://www.tutorialspoint.com/junit/junit_parameterized_test.htm
有人可以知道这段代码有什么问题吗?
python - pytest:使用带有熊猫数据框的夹具进行参数化
我有一个夹具,它返回一个pd.DataFrame
. 我需要将各个列 ( pd.Series
) 插入到单元测试中,并且我想使用parametrize
.
这是一个没有parametrize
. 数据框的每一列都将单独测试。但是,我想我可以摆脱input_series
固定装置,不是吗?使用此代码,只会执行 1 个测试。但是,我正在寻找 3 个测试,同时摆脱 for 循环。
我基本上在寻找这样的东西:
android - 安卓。如何使用多个资产调用编写参数化测试
我有一个返回 SpannableString 的方法。我需要为此方法编写仪器测试。在测试内部,我解析 SpannableString 并检查跨度计数、跨度开始、跨度结束等。这是我的测试示例:
但是,我需要测试更多的输入数据。我想写一个参数化测试,但我的测试中有几个 assertEquals 调用,所以我不明白如何将其转换为参数化测试。也许有一种更优雅的方法可以通过许多 assertEquals 调用为大量输入编写测试。请帮我。
python-3.x - 相互依赖的pytest标记参数化
我正在使用 pytest 进行单元测试,我想对测试进行参数化。我知道我可以在类级别和方法级别使用@pytest.mark.parametrize。
但是,在我的情况下,param2 列表取决于实际的 param1 值。我想获得这样的东西:
但是,我不知道该怎么做。
我尝试使用嵌套函数,但这也没有成功:
Pytest 然后只为 param1 收集一个测试用例。
android - 安卓。是否可以编写参数化的仪器测试
我正在尝试编写一个参数化的仪器测试。这是我的代码:
但是当我运行我的测试时,我收到以下错误:
org.junit.runners.model.InvalidTestClassError: 无效的测试类 'com. . . . ****.TempTest':
- 在 org.junit.runners.ParentRunner.(ParentRunner.java:92) 在 org.junit.runners.BlockJUnit4ClassRunner.(BlockJUnit4ClassRunner.java: 74) 在 androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.(AndroidJUnit4ClassRunner.java:43) 在 androidx.test.internal.runner.junit4.AndroidJUnit4Builder.runnerForClass(AndroidJUnit4Builder.java:65) 在 org.junit.runners。 model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37) at androidx.test.internal.runner.AndroidRunnerBuilder.runnerForClass(AndroidRunnerBuilder.java:153)在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) 在 androidx.test.internal.runner.TestLoader。doCreateRunner(TestLoader.java:73) 在 androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:105) 在 androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:804) 在 androidx.test .runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:613) 在 android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2074) 在 androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:411)Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)
我试图找到解决这个问题的方法。作为搜索的结果,我尝试@RunWith(Parameterized::class)
为我的TempTest
班级添加注释。@Parameterized.Parameters
我还为带有参数的方法添加了注释 testFormatTrimPercentValueArguments()
:
但是,当我运行测试时出现以下错误:
org.junit.runners.model.InvalidTestClassError: 无效的测试类 'com. . . . ****.TempTest':
- org.junit.runners.ParentRunner.(ParentRunner.java:102) 的 org.junit.runners.ParentRunner.validate(ParentRunner.java:525) 没有可运行的方法。 84) 在 org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersFactory.createRunnerForTestWithParameters(BlockJUnit4ClassRunnerWithParametersFactory.java:16) 在 org.junit.runners.Parameterized$RunnersFactory 的 org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.(BlockJUnit4ClassRunnerWithParameters.java:35)。 createRunnersForParameters(Parameterized.java:463) at org.junit.runners.Parameterized$RunnersFactory.createRunners(Parameterized.java:392) at org.junit.runners.Parameterized$RunnersFactory.access$100(Parameterized.java:360) at org. junit.runners.Parameterized.(Parameterized.java:307) 在 org.junit。runners.Parameterized.(Parameterized.java:303) at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:334) at org.junit.internal.builders .AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 在 org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 在 androidx.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:63 ) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) 在 org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37) 在 androidx.test.internal.runner.AndroidRunnerBuilder。 runnerForClass(AndroidRunnerBuilder.java:153) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) 在 androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:73) 在 androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:105) 在 androidx.test.internal.runner.TestRequestBuilder .build(TestRequestBuilder.java:804) 在 androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:613) 在 androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:411) 在 android.app.Instrumentation$ InstrumentationThread.run(Instrumentation.java:2074)AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:411) 在 android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:411) 在 android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)
请告诉我我做错了什么。可能无法编写参数化的仪器测试,因为当我编写本地参数化测试时没有这样的问题。当我在androidTest
文件夹中编写参数化测试时出现问题。请帮我。
python - 如何使用`fixture`和`parametrize`为pytest测试设置环境变量
我有 pytest 测试,其结果可能取决于环境变量。我想测试它们是否有这个环境变量的多个值。
我只想拥有一个设置此环境变量的夹具,但我希望能够为每个测试配置这些值,而不是每个夹具。
我该怎么做?