1

我不能让这两个在eclipse中一起工作

我可以像这样设置surefire插件

<suiteXmlFiles>
        <suiteXmlFile>${basedir}/src/test/resources/testng.xml</suiteXmlFile>
    </suiteXmlFiles>
    <testResources>
        <testResource>
            <directory>${project.basedir}/src/test/java</directory>
            <includes>
                <include>**/*.*</include>
            </includes>
        </testResource>
        <testResource>
            <directory>${project.basedir}/src/test/resources</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </testResource>
    </testResources>

并运行$mvn test,所有资源都被编译并移动到/target/test-classes中,效果很好。

但是,如果我运行$mvn clean然后使用 TestNG 视图运行一些测试,则没有编译任何内容/target/test-classes,因此我要么必须在此之前运行测试阶段,要么以某种方式使用maven-compiler-plugin:testCompile目标来编译测试资源......

maven-compiler-plugin:2.3.2:testCompile不是通过testResources配置像surefire插件那样设置。它只是将测试源代码编译成测试类

我应该怎么做才能让 testNG 像运行 surefire 插件一样执行?我不知何故需要产生的效果<testResources>

4

1 回答 1

1

testResources & resources是其一部分maven-resources-plugin

compile & test-compile是其一部分maven-compiler-plugin

因此,您所要做的就是在通过 TestNG 视图运行测试之前单击调用所有这些阶段和目标的按钮

compile 
test-compile
maven-resources-plugin:resources 
maven-resources-plugin:testResources 

此外,这非常重要,每当您从 TestNG 视图运行测试时,eclipse 都会使用testng.xml您单击的测试创建一个临时定义,无论是一个测试还是一类测试。因此,如果您通过 Eclipse 的 Run As 使用 testNG 运行配置,那么您在通过 SureFire 插件运行时所拥有的 testng.xml 中的其他设置会丢失......它看起来像这样

/tmp/testng-eclipse-388280625/testng-customsuite.xml

-

<suite name="Default suite">
  <test verbose="2" name="Default test">
    <classes>
      <class name="com.example.tests.selenium.SubmitUploadFormTest"/>
    </classes>
  </test>
</suite>

它有一种方便的方法来处理这个问题 - 在 eclipse testng 首选项中设置模板 testng.xml 文件。

于 2011-06-04T00:33:39.653 回答