java - 有没有一种方法可以让一个测试函数在 JUnit 中显示为多个单元测试?

标签 java xml junit

我有一个包含单元测试的 kx q 项目。该测试套件生成一个包含测试结果的表格,我需要将其与 Atlassian Bamboo 集成以查看哪些测试失败以及原因。更简单的方法是将此测试结果表转储到 csv 中,然后将其转换为 Atlassian Bamboo 插件已经理解的 JUnit XML 输出。

为此,我认为最好的方法是拥有一个具有单个测试套件或单个函数的 Java 项目,该项目读取此 CSV 的每一行(该 CSV 中的每一行都是一个单独的测试用例),并断言相应的行是否通过了测试。重要的是,每个断言都被视为测试套件中的单独测试,因此 JUnit XML 输出与 csv 文件转储一一对应。

这可以使用 JUnit 来完成吗?如何实现?

最佳答案

Can this be done using JUnit

我没想到会这样,主要是因为所描述的行为本身并不是严格的单元测试。也许我误解了这个问题(如果是这样的话请纠正我),但听起来你想做的是:

Repeat a single test for every line of an input file, and indicate the results individually.

这是一种测试,验证文件作为系统的输入。但它没有测试代码的行为,这使它有点超出了单元测试的范围。

除非有一个工具可以做类似的事情,否则我倾向于简单地构建一个。它真正需要做的就是接收文件作为输入,对每一行调用“测试”(可以是单元测试方法,但不一定需要),并将结果输出到它自己的文件中。作为一个实现细节,输出恰好是 XML,其格式与 JUnit 输出其结果的格式相同,因此相同的工具可以读取结果。

作为单独的单元测试,我想有必要将输入的每一行视为单独的静态定义测试(其中每行输入都是“排列”步骤)。这肯定不理想。我认为编写一个单独调用的一次性工具比尝试强制 JUnit 进入一种它不适合的模式更短的实现目标的途径。

除非出于自动化构建/部署步骤的考虑,此验证有必要进行单元测试,否则一次性工具似乎更简单。

关于java - 有没有一种方法可以让一个测试函数在 JUnit 中显示为多个单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26387435/

相关文章:

java - 在 Java 小程序中将字符串哈希为整数 - 它是如何工作的?

python - 使用空命名空间解析 xml

xml - 如何使用一个字段作为标记将另一个字段作为值将 go struct 序列化为 XML

spring - 如何使用参数化的 spring Junit 测试创建 TestSuite

java - 对于 Junit 问题 : when test multiple thread

java - RabbitTemplate.send() 是否保证将消息传递到 RabbitMQ?

java - 禁止将项目放入同一个 TableView 中

java - 我们可以在 Java 中读取操作系统环境变量吗?

java - 使用 UTF-16BE 的 JAXB 空元素过早结束文件

java - 配置的 JUnit 测试用例