我有多个TestSuites文件。
我想从POM文件中设置我的套件文件中的参数变量。但我无法从谷歌搜索中获得任何建议。
任何人都可以帮助我如何执行它。
ABC.xml [文件#1]
<parameter name="property_file" value="C:/a.properties" />
DEF.xml [文件#2]
<parameter name="property_file" value="C:/a.properties" />
我想从Maven pom设置Property_file参数值。
我想设置&#34; C:/123.properties"对于文件#1和&#34; C:/456.properties"对于文件#2。
我的套件文件可能看起来像_
<suiteXmlFiles>
<suiteXmlFile>ABC.xml</suiteXmlFile>
<suiteXmlFile>DEF.xml</suiteXmlFile>
</suiteXmlFiles>
我不想在TestNG文件中设置参数,我想从POM文件中进行设置。
有可能吗?
答案 0 :(得分:1)
是的,有可能。您可以使用maven ressources插件进行过滤。看一看: https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
如果文章没有回答您的所有问题,请不要犹豫。
总之,您可以这样做:
<project>
...
<properties>
<suiteXmlFile>ABC.xml</suiteXmlFile>
</properties>
...
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
...
</resources>
...
</build>
...
</project>
并在您使用的资源文件夹中的xml文件中
<parameter name="property_file" value="${suiteXmlFile}" />
不可能(至少以一种简单的方式)是实现一个maven魔法,它在每个xml文件中以不同的方式解释相同的属性。在这种情况下,您必须使用不同命名的属性。 (例如,suiteXmlFile1,suiteXmlFile2)
答案 1 :(得分:0)
@ niklas-p的答案很好但是在测试资源的情况下,你应该使用testResources
代替。
<project>
...
<properties>
<property_file>C:/a.properties</property_file>
</properties>
...
<build>
...
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
...
</testResources>
...
</build>
...
</project>
然后,过滤后的资源将位于${project.build.testOutputDirectory}
目录中:
<suiteXmlFiles>
<suiteXmlFile>${project.build.testOutputDirectory}/ABC.xml</suiteXmlFile>
<suiteXmlFile>${project.build.testOutputDirectory}/DEF.xml</suiteXmlFile>
</suiteXmlFiles>
在套件文件中:
<parameter name="property_file" value="${property_file}" />