有没有办法让一个测试函数在JUnit中作为多个单元测试出现?

时间:2014-10-15 16:24:58

标签: java xml junit

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

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

可以使用JUnit完成吗?

1 个答案:

答案 0 :(得分:1)

  

可以使用JUnit

完成

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

  

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

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

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

单独作为单元测试,我想有必要将输入的每行视为单独的静态定义的测试(其中每行输入是“排列”步骤)。这当然不是理想的。我想编写一个可以自行调用的一次性工具将是一个更短的目标路径,而不是试图强制JUnit进入一个它不适合的模式。

除非作为自动构建/部署步骤的关注,否则此验证必须是单元测试,一次性工具似乎更直接。