【问题标题】:NullPointerException in maven-surefire-plugin when running testng suite xml with maven使用 maven 运行 testng 套件 xml 时,maven-surefire-plugin 中出现 NullPointerException
【发布时间】:2017-04-03 13:01:40
【问题描述】:

当我使用 maven 运行我的 testng 套件 xml 时,套件标签中没有 parallel="tests"。

> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test
> (default-test) on project neo: Execution default-test of goal
> org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed:
> There was an error in the forked process [ERROR]
> java.lang.NullPointerException [ERROR] at
> java.util.Hashtable.put(Hashtable.java:514) [ERROR] at
> java.util.Properties.setProperty(Properties.java:161) [ERROR] at
> org.testng.reporters.JUnitXMLReporter.createElement(JUnitXMLReporter.java:203)
> [ERROR] at
> org.testng.reporters.JUnitXMLReporter.generateReport(JUnitXMLReporter.java:181)
> [ERROR] at
> org.testng.reporters.JUnitXMLReporter.onFinish(JUnitXMLReporter.java:118)
> [ERROR] at org.testng.TestRunner.fireEvent(TestRunner.java:1246)
> [ERROR] at org.testng.TestRunner.afterRun(TestRunner.java:1039)
> [ERROR] at org.testng.TestRunner.run(TestRunner.java:621) [ERROR] at
> org.testng.SuiteRunner.runTest(SuiteRunner.java:334) [ERROR] at
> org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) [ERROR]
> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) [ERROR] at
> org.testng.SuiteRunner.run(SuiteRunner.java:240) [ERROR] at
> org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
> [ERROR] at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
> [ERROR] at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
> [ERROR] at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
> [ERROR] at org.testng.TestNG.run(TestNG.java:1031) [ERROR] at
> org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:281)
> [ERROR] at
> org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:75)
> [ERROR] at
> org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:121)
> [ERROR] at
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
> [ERROR] at
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
> [ERROR] at
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)

当我使用 parallel="tests" 运行它时,它工作正常。此外,如果我从 Eclipse “运行为 testng 测试”运行我的 testng 套件 xml 而没有 parallel="tests" 它工作正常。请帮忙。

我的套件 xml-

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Filters API" parallel="tests">
    <test name="Filters Test">
        <classes>
            <class name="com.api.testng.modules.filters.FiltersTests"/>
        </classes>
    </test>
</suite>

【问题讨论】:

  • 你确定你的FiltersTests类中有@Test注解吗?
  • 这是我的测试方法 --- @Test() public void testAllGroups() { BaseRequestDTO dto = new BaseRequestDTO(); dto.setChannelType("ALL");字符串响应 = filtersAPI.getAllGroups(dto); }
  • 能否用您的 pom 文件中的内容更新问题?
  • 我的 pom 很大。我可以发布其中的一些相关部分。
  • 这只是 @Test 而不是 @Test() 。请重新检查

标签: java testng maven-3 maven-surefire-plugin


【解决方案1】:

我在 pom 中提到插件的这一部分-

        <profile>
        <id>TestNg</id>
        <activation>
            <property>
                <name>run_tests</name>
                <value>TestNg</value>
            </property>
        </activation>
        <dependencies>
            <dependency>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-testng-adaptor</artifactId>
                <version>${allure.version}</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.0</version>
                    <configuration>
                        <testIncludes>
                            <testInclude>**/testng/**</testInclude>
                        </testIncludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire.version}</version>
                    <configuration>
                        <testFailureIgnore>false</testFailureIgnore>
                        <argLine>
                            -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                        </argLine>
                        <properties>
                            <property>
                                <name>listener</name>
                                <value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
                            </property>
                        </properties>
                        <suiteXmlFiles>
                            <suiteXmlFile>
                                ${suite.xml}
                            </suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.aspectj</groupId>
                            <artifactId>aspectjweaver</artifactId>
                            <version>${aspectj.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </profile>

【讨论】:

    猜你喜欢
    • 2015-09-09
    • 2019-07-14
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 2021-06-26
    相关资源
    最近更新 更多