当前位置: 首页 > 知识库问答 >
问题:

如何使用JUnit5参数化测试CSV文件源?

堵浩波
2023-03-14

我正在尝试从CSV文件运行参数化测试。

如果我只使用这样的CSVSource,它就会起作用:

@ParameterizedTest
@CsvSource({ "a,A", "b,B" })
void csvSourceTest(String input, String expected) {
    String actualValue = input.toUpperCase();
    assertEquals(expected, actualValue);
}

但如果我从一个文件中尝试同样的方法,它将不起作用:

@ParameterizedTest
@CsvFileSource(resources = "/data.csv")
void csvFileSourceTest(String input, String expected) {
    String actualValue = input.toUpperCase();
    assertEquals(expected, actualValue);
}

我也尝试过使用硬路径访问我的文件,但对于Eclipse中的文件测试,我总是能得到消息

找不到使用测试runnter“JUnit 5”的测试。

JUnit期望文件在哪里?

以下是我的依赖关系:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-params</artifactId>
    <version>5.1.0</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.1.0</version>
    <scope>test</scope>
</dependency>

有人知道我可能遗漏了什么或者错误在哪里吗?

提前谢谢你
保罗

共有1个答案

殷宾白
2023-03-14

JUnit5用户指南指出CSV文件需要位于类路径上。如果Maven项目是src/test/Resources

 类似资料:
  • 在JUnit 4中,通过使用注释很容易跨一堆类测试不变量。关键是一组测试正在针对单个参数列表运行。 如何在JUnit 5中复制这一点,而不使用JUnit-vintage? 不适用于测试类。听起来可能是合适的,但该注释的目标也是一个方法。 此类 JUnit 4 测试的一个示例是:

  • 我试图定义一个,如示例MockitoExtension所提供的,但无法成功地使用参数化的类实例。 期待着关于如何用在中实现接口的类的参数化实例测试接口的建议。

  • 注意:我已经做了一个搜索和阅读了各种博客,但找不到一个例子,与我正在尝试做什么。 它似乎不喜欢我的某个测试成员字段是私有的,但没有告诉我它对哪个字段有问题。我见过的单元测试的所有例子,唯一公开的一定是ExpectedException规则。

  • 我如何完成这个任务?

  • 使用Robolectric的参数化测试 原文链接 : Parameterized testing with Robolectric 译文出自 : 开发技术前线 www.devtf.cn 译者 : Lollypo 校对者: Chaos 状态 : 校对完成 在目前的项目中我们使用Robolectric为Android应用程序编写单元测试,它一直都干的不错。最近我需要编写一个测试用例,通过每次使用不同的

  • 我试图用一个REST WebService做一个性能测试。我添加了HTTP请求、头管理器、HTTP请求默认值、查看结果树、CSV数据配置文件。 这就是我如何参数化我的Post消息的方法 我面临的问题是被添加而不是值。 张贴http://cawin.go2group.com/connectall/rest/useradmin/user 过帐数据: 请原谅我的无知。