Java 有没有办法让一个测试函数在JUnit中显示为多个单元测试?

Java 有没有办法让一个测试函数在JUnit中显示为多个单元测试?,java,xml,junit,Java,Xml,Junit,我有一个带有单元测试的KXQ项目。这个测试套件生成了一个包含测试结果的表,我需要将它和Atlassian Bambol集成起来,看看哪些测试失败了,以及为什么失败。更简单的方法是将此测试结果表转储到csv中,然后将其转换为Atlassian竹插件已经理解的JUnit XML输出 为此,我认为最好是有一个Java项目,该项目具有一个测试套件或单个函数,该测试套件或函数读取该CSV的每一行(该CSV中的每一行都是一个单独的测试用例),并根据相应的行是否通过测试进行断言。重要的是,每个断言都作为测试套

我有一个带有单元测试的KXQ项目。这个测试套件生成了一个包含测试结果的表,我需要将它和Atlassian Bambol集成起来,看看哪些测试失败了,以及为什么失败。更简单的方法是将此测试结果表转储到csv中,然后将其转换为Atlassian竹插件已经理解的JUnit XML输出

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

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

这可以使用JUnit完成吗

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

对输入文件的每一行重复一次测试,并分别指出结果

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

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

作为单独的单元测试,我认为有必要将输入的每一行视为一个单独的静态定义测试(其中每一行输入都是“排列”步骤)。这当然不是理想的。我认为,编写一个一次性的工具来自己调用,比试图强迫JUnit进入一个它不打算使用的模式要短


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

这个问题真的是关于将一些现有的非JUnit测试输出从某些表格式转换为JUnit XML格式的问题吗?如果是这样,你不应该伪造JUnit测试,而应该编写代码从一种格式转换为另一种格式。原因是可维护性。每次JUnit XML输出模式发生变化时,我都需要更新这样的工具。这种格式已经很多年没有变化了,很多工具都依赖它,所以将来不太可能发生变化。即使它改变了,直接翻译也会让你受益匪浅。谢谢你的回答。我倾向于同意这一点,但我不希望每次发布新的JUnitXML输出模式时都必须更改这个新工具。这就是为什么我不想构建一个单独的(虽然更简单的解决方案)工具的主要原因。将CSV中的每一行简单地映射到一个虚假的单元测试,这将在将来得到更广泛的证明。@GiovanniAzua:有趣的是,JUnit输出格式会经常改变吗?这并不会真正影响我的答案或你的意图,我只是好奇,因为我以前从未真正使用过它,也不必遵循那个特定的标准。我觉得这是一个特别奇怪的问题。