java - 使用 junitparams @FileParameter 在 Java : Combine 'custom test name' feature (@Parameters(name ="namestring")) in jUnit 4. 11 中进行参数化 jUnit 测试?

标签 java unit-testing junit parameterized

对于 Java 中的参数化测试,jUnit 4.11 (@Parameters(name="namestring")) 中公开的“自定义测试名称”功能是否可以与 Google junitparams 中的任何功能相结合?

我有一个 Java 测试,它循环遍历包含一组 View 名称的文件以进行比较。希望每个比较都作为单独的测试实例报告,而不是报告单个测试,每个测试名称都根据作为输入提供的 View 名称进行自定义。

理想情况下,希望使用 junitparams @FileParameter 加载包含名称集的文件,将字符串传递到 jUnit 'name=' 以用作测试名称​​并且也作为输入传递到测试中。 “@FileParameter”和“name=”功能独立实现都相对简单。

根据其文档页面,junitparams 与 jUnit 4.11 “兼容”,但我还没有找到结合上述两个功能的方法。虽然我可以为同一测试提供 @FileParameter 和 @Parameters 表示法,而不会出现语法或运行时错误,但运行结果似乎忽略了后者的存在。

有人做过吗?有更好/更简单的选择吗?第一次向交易所提出真正的问题,所以请耐心等待......

=cjs

最佳答案

使用 @Parameters 注释的 JUnit 测试必须使用

运行
@RunWith(Parameterized.class)

但是 junitparams 使用它自己的运行器

@RunWith(JUnitParamsRunner.class)

JUnit 测试只能使用单个运行程序,因此我不知道它们如何一起工作,除非有人将两个运行程序合并为一个。

最简单的解决方案是放弃 junitparams 并实现从输入文件读取数据并将其转换为参数列表的逻辑,以便您可以从使用 @Parameters 注释的方法返回该列表。

另一个解决方案是修改 JUnitParamsRunner 使其行为更像Parameterized 运行程序,例如为从输入文件读取的每个参数生成一个具有不同名称的测试。

另请参阅:

关于java - 使用 junitparams @FileParameter 在 Java : Combine 'custom test name' feature (@Parameters(name ="namestring")) in jUnit 4. 11 中进行参数化 jUnit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22314505/

相关文章:

mysql - 错误:ActiveRecord::StatementInvalid:Mysql2::Error:字段 'full_name' 没有默认值

python - 根据设置中的条件退出测试

java - 如何测试文件提取

spring - 如何在没有 Spring 事务测试支持的情况下编写 Junit4 测试?

java - 我的实现是否违反了构建器模式?

java - 未知变量

java - 如何按特定列对java中的二维整数数组进行排序

java - Spring MVC : Update an existing entity

spring - 创建依赖于另一个测试用例的测试

java - Junit实例创建分别通过方法或类