在下面运行junit会引发异常. import org.junit.runner.RunWith;import org.junit.runners.Suite;import org.junit.runners.Suite.SuiteClasses;import com.prosveta.backend.daoimpl.AllDaoImplTests;/** * Short desc. * * Longer desc. * * @auth
import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; import com.prosveta.backend.daoimpl.AllDaoImplTests; /** * Short desc. * * Longer desc. * * @author Jean-Pierre Schnyder * */ @RunWith(Suite.class) @SuiteClasses({AllDaoImplTests.class,AllServiceImplTests.class}) public class AllBackendTests { }
堆栈跟踪
java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653) at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460) at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286) at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222) at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070) at java.lang.Class.getAnnotations(Class.java:3050) at org.junit.runner.Description.createSuiteDescription(Description.java:72) at org.junit.internal.runners.ErrorReportingRunner.getDescription(ErrorReportingRunner.java:25) at org.junit.runner.Runner.testCount(Runner.java:38) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.countTestCases(JUnit4TestClassReference.java:30) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.countTests(RemoteTestRunner.java:487) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:455) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
感谢您的回答 !
我终于找到了一种方法,可以通过运行junit 4套件来实现我想要实现的目标,即在多模块项目的所有模块中运行所有测试.为此,请使用 Johannes Link ClassPathSuite tool.下载jar,将其安装在maven repo中,创建一个allTests项目,该项目取决于你的junits所在的其他项目,并创建一个AllTestClass.以下是一些代码和scn捕获来说明解决方案:
将jar安装到maven仓库中
创建一个allTests项目
pom ……
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.prosveta.backend</groupId> <artifactId>alltests</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.prosveta.backend</groupId> <artifactId>serviceimpl</artifactId> <version>1.0-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.prosveta.backend</groupId> <artifactId>daoimpl</artifactId> <version>1.0-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.prosveta.backend</groupId> <artifactId>model</artifactId> <version>1.0-SNAPSHOT</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.junit.extensions</groupId> <artifactId>cpsuite</artifactId> <version>1.2.5</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies>
在Eclipse中添加依赖项…
这是所有测试类
package com.prosveta.backend.serviceimpl; import org.junit.extensions.cpsuite.ClasspathSuite; import org.junit.runner.RunWith; @RunWith(ClasspathSuite.class) public class AllBackendTests { }
你只是“作为JUnit运行”.