# JUnit `JUnitCore`示例

> 原文： [https://howtodoinjava.com/junit/how-to-execute-junit-testcases-with-junitcore/](https://howtodoinjava.com/junit/how-to-execute-junit-testcases-with-junitcore/)

在任何以增量方式构建的应用中，通常希望只要引入新功能，我们就只能运行某些测试。 可以使用 JUnit 框架的`JUnitCore`类来实现。

[**`JUnitCore`**](http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html "JUnitCore")是 JUnit 包中的内置类，它基于**外观设计模式**。 `JUnitCore`类仅用于运行指定的测试类。

> 阅读更多： [JUnit5 测试套件](https://howtodoinjava.com/junit5/junit5-test-suites-examples/)

## 1\. `JUnitCore`示例

假设在应用发行版中有两个新功能。 这些功能通过两个接口公开。 假设接口名称为`FeatureOne`和`FeatureTwo`。

#### 1.1 要测试的功能

这两个功能的 JUnit 测试可以如下：

```java
package com.howtodoinjava.junit;

import junit.framework.Assert;

import org.junit.Test;

public class TestFeatureOne {
	@Test
	public void testFirstFeature()
	{
		Assert.assertTrue(true);
	}
}

```

```java
package com.howtodoinjava.junit;

import junit.framework.Assert;

import org.junit.Test;

public class TestFeatureTwo {
	@Test
	public void testSecondFeature()
	{
		Assert.assertTrue(true);
	}
}

```

#### 1.2 使用`JUnitCore`运行测试

要仅针对上述功能运行测试，我们可以编写这样的套件。

```java
package com.howtodoinjava.junit.suite;

import java.util.ArrayList;
import java.util.List;

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

import com.howtodoinjava.junit.TestFeatureOne;
import com.howtodoinjava.junit.TestFeatureTwo;

@SuppressWarnings("rawtypes")
public class WithJUnitCore
{
	public static void main(String[] args)
	{
		List testCases = new ArrayList();

		//Add test cases
		testCases.add(TestFeatureOne.class);
		testCases.add(TestFeatureTwo.class);

		for (Class testCase : testCases)
        {
            runTestCase(testCase);
        }
	}

    private static void runTestCase(Class testCase)
    {
        Result result = JUnitCore.runClasses(testCase);

        for (Failure failure : result.getFailures())
        {
            System.out.println(failure.toString());
        }
    }
}

```

## 2\. `JUnitCore`在命令提示符下运行测试

要从命令提示符手动运行测试类，我们可以从控制台运行以下命令。 给出所有测试类的名称，以空格分隔。

```java
$ java org.junit.runner.JUnitCore TestFeatureOne TestFeatureTwo 

```

## 3\. `JUnitCore`运行所有测试

强烈建议创建 [JUnit 套件](https://howtodoinjava.com/junit/how-to-execute-junit-testcases-in-test-suite/)，并在所有测试用例中执行应用。 这将需要一些工作，但是仍然是在 JUnit 中执行所有测试的最佳方法。

```java
@RunWith(Suite.class)
@SuiteClasses({ TestFeatureOne.class, TestFeatureTwo.class })
public class TestFeatureSuite {
	//
}

```

学习愉快！

参考：

[`JUnitCore` Java 文档](https://junit.org/junit4/javadoc/4.12/org/junit/runner/JUnitCore.html)