mvn testng无法运行测试套件,而Idea可以

时间:2016-01-16 14:02:31

标签: maven automated-tests testng

我有一个看起来像这样的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根本看不到测试套件。 这可能是什么情况,我应该看哪种方式?

1 个答案:

答案 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>