gpt4 book ai didi

java - 我如何使用集成测试运行器在我的 IntelliJ IDEA 项目中运行除以 "IntegrationTest"结尾的那些之外的所有 JUnit 单元测试?

转载 作者:搜寻专家 更新时间:2023-10-30 21:04:09 28 4
gpt4 key购买 nike

我基本上想在我的 IntelliJ IDEA 项目中运行所有 JUnit unit 测试(不包括 JUnit 集成测试),使用 JUnit 的静态 suite() 方法。为什么要使用静态 suite() 方法?因为我随后可以使用 IntelliJ IDEA 的 JUnit 测试运行器来运行我的应用程序中的所有单元测试(并通过命名约定轻松排除所有集成测试)。到目前为止的代码如下所示:

package com.acme;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

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

public class AllUnitTests extends TestCase {

public static Test suite() {
List classes = getUnitTestClasses();
return createTestSuite(classes);
}

private static List getUnitTestClasses() {
List classes = new ArrayList();
classes.add(CalculatorTest.class);
return classes;
}

private static TestSuite createTestSuite(List allClasses) {
TestSuite suite = new TestSuite("All Unit Tests");
for (Iterator i = allClasses.iterator(); i.hasNext();) {
suite.addTestSuite((Class<? extends TestCase>) i.next());
}
return suite;
}

}

应该重写方法 getUnitTestClasses() 以添加所有扩展 TestCase 的项目类,除非类名以“IntegrationTest”结尾。

例如,我知道我可以在 Maven 中轻松完成此操作,但我需要在 IntelliJ IDEA 中完成此操作,以便我可以使用集成测试运行器 - 我喜欢绿色条:)

最佳答案

如何将每个主要的 junit 测试组放入它们自己的根包中。我在我的项目中使用这个包结构:

test.
quick.
com.acme
slow.
com.acme

无需任何编码,您可以设置 IntelliJ 来运行所有测试,只运行快速测试或只运行慢速测试。

关于java - 我如何使用集成测试运行器在我的 IntelliJ IDEA 项目中运行除以 "IntegrationTest"结尾的那些之外的所有 JUnit 单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/176913/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com