java – Maven2编译我的测试,但不运行它们
发布时间:2020-12-15 08:33:40 所属栏目:Java 来源:网络整理
导读:我有一个简单的Maven2项目,其中包含为TestNG编写的测试.当我说mvn测试Maven2编译我的测试,但不运行它们.我已经检查了这个页面: http://maven.apache.org/general.html#test-property-name.这不是我的情况. 有人可以帮忙吗? 我的目录结构: pom.xmlsrc main
我有一个简单的Maven2项目,其中包含为TestNG编写的测试.当我说mvn测试Maven2编译我的测试,但不运行它们.我已经检查了这个页面:
http://maven.apache.org/general.html#test-property-name.这不是我的情况.
有人可以帮忙吗? 我的目录结构: pom.xml src main java com ... test java com ... target classes <— .class files go there test-classes <— .class files with tests go there 如果我运行mvn -X test(日志结束),这就是我所看到的: ... [INFO] Surefire report directory: <mydir>/target/surefire-reports Forking command line: /bin/sh -c cd <mydir> && /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java -jar /var/folders/+j/+jAx0g2xGA8-Ns9lWNOWgk+++TM/-Tmp-/surefirebooter7645642850235508331.jar /var/folders/+j/+jAx0g2xGA8-Ns9lWNOWgk+++TM/-Tmp-/surefire4544000548243268568tmp /var/folders/+j/+jAx0g2xGA8-Ns9lWNOWgk+++TM/-Tmp-/surefire7481499683857473873tmp ------------------------------------------------------- T E S T S ------------------------------------------------------- Running TestSuite Tests run: 0,Failures: 0,Errors: 0,Skipped: 0,Time elapsed: 0.191 sec 我在项目中有两个测试(MainTest.java和FileSetTest.java). 我的pom.xml: <?xml version="1.0" encoding="UTF-8"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.SKIP</groupId> <artifactId>SKIP</artifactId> <name>SKIP</name> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <url>http://www.SKIP.com</url> <dependencies> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr-runtime</artifactId> <version>3.2</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>5.8</version> <scope>test</scope> <classifier>jdk15</classifier> </dependency> </dependencies> <build> <defaultGoal>install</defaultGoal> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> </plugin> <plugin> <groupId>org.antlr</groupId> <artifactId>antlr3-maven-plugin</artifactId> <version>3.2</version> <executions> <execution> <goals> <goal>antlr</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>jsr14</target> <sourceDirectory>src</sourceDirectory> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.SKIP.Main</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>attached</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> 解决方法
“问题”在某种程度上与您使用jsr14目标模式编译测试这一事实有关,这导致编译器发出与JDK 1.4兼容的字节码,因此我认为注释被删除而TestNG没有检测到要运行的任何内容.
我的建议是配置maven-compiler-plugin在从main和test编译代码时使用不同的合规级别,如下所示: <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>jsr14</target> </configuration> <executions> <execution> <id>test-compile</id> <phase>process-test-sources</phase> <goals> <goal>testCompile</goal> </goals> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </execution> </executions> </plugin> 我做了一个快速测试,似乎工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |