不同严重程度的单元测试

时间:2013-05-13 18:58:26

标签: unit-testing junit

我正在测试一组类,到目前为止,我的单元测试都是

1. read in some data from file X
2. create new object Y
3. sanity assert some basic properties of Y
4. assert advanced properties of Y

这些测试中大约有30个,可以检查的Y的输入/属性不同。但是,在当前项目状态下,它有时会在#2处崩溃或在#3处已经失败。它永远不应该在#1崩溃。目前,我接受了#4的所有失败。

我想要,例如查看在#3失败的单元测试列表,但到目前为止忽略了#4失败的所有单元测试。创建此标准的标准方法/术语是什么?我在Eclipse中使用JUnit for Java。

2 个答案:

答案 0 :(得分:0)

您需要报告/过滤您的单元测试结果。

jUnit本身希望你的测试通过,失败或不运行 - 介于两者之间。

但是,它并不关心这些结果如何与构建或报告的传递/失败相关联。 使用maven(surefire执行插件)和一些自定义代码等工具,您可以对测试进行分类,以区分“硬故障”,“坏”,“让我们继续”等等。但这是基于测试结果的构建验证或报告而不是测试

(目前,我们的构建过程依赖于@Category(WorkInProgress.class)等注释来为每个测试方法决定什么是关键,哪些不是。

答案 1 :(得分:0)

我能想到的是创建assert方法,检查一些系统属性是否执行断言:

 public static void assertTrue(boolean assertion, int assertionLevel){
     int pro = getSystemProperty(...);
     if (pro >= assertionLevel){
         Assert.assertTrue(assertion);
     }
 }