我不能让这两个人在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
中没有编译任何内容,所以我要么必须在此之前运行测试阶段,要么以某种方式使用{ {1}}编译测试资源的目标...
但maven-compiler-plugin:testCompile
未通过maven-compiler-plugin:2.3.2:testCompile
配置设置为surefire插件。它只是将测试源代码编译成测试类
我应该怎么做才能让testNG像我运行surefire插件一样执行?我不知何故需要testResources
答案 0 :(得分: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文件。