【问题标题】:Junit - Executing a class with variety of tests that resides on different classesJunit - 执行一个具有各种测试的类,这些测试驻留在不同的类上
【发布时间】:2014-11-11 15:21:39
【问题描述】:

我有以下测试类:

TestClass1 (10 tests)
TestClass2 (20 tests)
TestClass3 (15 tests)
TestClass4 (25 tests)

我想创建一个名为

的测试类
 SmallTestClass

从 TestClass1 执行 2 个测试,从 TestClass2 执行 3 个测试,从 TestClass3 执行 5 个测试,从 TestClass4 执行 4 个测试

如何做到这一点?我使用spring框架和junit 4

【问题讨论】:

  • 你为什么要这样做?
  • 我想创建一个运行我所有测试类的一小部分的健全性测试。这种健全性测试是通用且快速的。如果我运行所有的课程,我将不得不等待 5 个小时才能完成测试。

标签: java spring junit


【解决方案1】:

您需要结合使用 Junit 4 CategorySuite 来实现此目的。请注意,Category 仍是一项实验性功能,已在v4.8 中引入。

下面的示例仅确保只有 someTest1() 运行(我自己使用 v4.11 进行测试),因为它被归类为 SanityTest

聚合器:

import org.junit.experimental.categories.Categories;
import org.junit.experimental.categories.Categories.IncludeCategory;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;

@RunWith (Categories.class)
@SuiteClasses (SomeTest.class)
@IncludeCategory (SanityTests.class)
public class JunitSuiteTest {
}

包含实际测试的类:

import org.junit.Test;
import org.junit.experimental.categories.Category;

public class SomeTest {
    @Test
    @Category (SanityTests.class)
    public void someTest1()
    {
        System.out.println("test 1");
    }

    @Test
    public void someTest2()
    {
        System.out.println("test 2");
    }
}

帮助分类的标记类:

public class SanityTests {
}

【讨论】:

  • 感谢您的回复,但我担心这个实验性功能将来会改变。这是对这项努力的支持
猜你喜欢
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 2020-02-10
  • 2015-04-05
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-27
相关资源
最近更新 更多