测试套件,测试用例和测试类别之间的区别

时间:2017-05-19 12:01:42

标签: junit

测试套件,测试用例和测试类别之间有什么区别。 我找到了部分答案here

但是类别怎么样?

2 个答案:

答案 0 :(得分:1)

测试类别就像一个子测试套件。以示例为例documentation。一个类文件,您将有多个测试用例。 Test Suite是您要运行的一组Test类。测试类别是测试用例的子组。您可以在类文件中的某些测试用例中添加注释,并创建指向同一测试类的测试套件,但过滤其中一个套件以仅测试某些类别。文档示例:

public interface FastTests { /* category marker */ }
public interface SlowTests { /* category marker */ }

public class A {
  @Test
  public void a() {
    fail();
  }

  @Category(SlowTests.class)
  @Test
  public void b() {
  }
}

@Category({SlowTests.class, FastTests.class})
public class B {
  @Test
  public void c() {

  }
}

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public class SlowTestSuite {
  // Will run A.b and B.c, but not A.a
}

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@ExcludeCategory(FastTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public class SlowTestSuite {
  // Will run A.b, but not A.a or B.c
}

请注意,两个Test Suite都指向相同的测试类,但它们将运行不同的测试用例。

答案 1 :(得分:1)

Test case是一组测试输入,执行条件和为测试特定执行路径而开发的预期结果。通常,案例是一种方法。

Test suite是相关测试用例的列表。 Suite可能包含特定于所包含案例的常见初始化和清理例程。

测试类别/组是一种标记单个测试用例并将其分配给类别的方法。对于类别,您不需要维护测试用例列表。

测试框架通常提供了一种指定要在给定测试运行中包含或排除哪些类别的方法。这允许您在不同的测试套件中标记相关的测试用例。当您需要禁用/启用具有公共依赖项(API,库,系统等)或属性(缓慢,快速的情况)的案例时,这非常有用。

据我所知,测试组和测试类别是不同框架中使用的相同概念的不同名称: