我有一个看起来像这样的testNg套件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="BlahServerSuite">
<test name="Creating Customer Test">
<classes>
<class name="com.node.service.scripts.server.CustomerTest" />
</classes>
</test>
</suite>
从IDE运行时它正常运行。但是,当我尝试使用&#34; mvn test&#34;从控制台执行它时我有以下错误:
[TestNGClassFinder] Warning: Can't link and determine methods of class com.node.service.scripts.server.CustomerTest
我的pom看起来像这样:
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/testNode/java/com/testnode/service/scripts/server/serversuite.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<groupId>groupId</groupId>
<artifactId>testNode</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
....
该项目由几个模块组成。即使pom文件位于modul2(以及测试)中,我仍然需要在pom中设置套件文件的完整路径,否则mvn根本看不到测试套件。 这可能是什么情况,我应该看哪种方式?
答案 0 :(得分:1)
可能是您使用非标准位置来测试源。如果您在某些设置中隐式添加它们,它仍可能在IDE中工作。因此,请尝试使用src/test
,或尝试将src/testNode
添加到测试源。例如,您可以使用build-helper-maven-plugin
执行此操作。像这样:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/testNode</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>