故事:所以我正在运行一个带有 TestNG 的 WebDriver2 测试套件,所有这些都捆绑在一个 Maven 架构中。我首先在 Eclipse 项目中构建了所有内容,然后将其转换为 Maven 项目。我不是程序员,但我可以通过 Java 破解自己的方式,我是 Maven 新手,但对 TestNG 和 Selenium 非常好,从我研究过的所有内容来看,我都在正确地处理这个问题,我必须错过一些愚蠢的东西。
问题:我在 Eclipse 中使用 Maven 插件运行这一切,当我将 POM 作为 TEST 运行时出现错误:
org.testng.TestNGException: Parameter 'dataMode' is required by @Configuration of method prepareDriver but has not been marked @Optional or defined
因此,因此为 SureFire 设置 POM 以获取我的文件,也设置了 testNG 依赖项并且似乎可以工作,因为我的错误来自 TestNG 本身:
<plugins>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src\test\resources\testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
[...]
</plugins>
我也将参数传递给了这个插件:
<systemPropertyVariables>
<dataMode>Custom</dataMode>
</systemPropertyVariables>
<systemPropertyVariables>
<log_level>DEBUG</log_level>
</systemPropertyVariables>
我的 TestNG 文件中的所有内容都是正确的,如果我只是从 testng.xml 中作为 TestNG 测试运行,那么所有内容都按预期运行,如果您想要该代码,我将更新但该部分有效,参数在那里正确。
此外,当我将 POM 作为 TEST 执行时,我得到一个报告,指出 11 个测试中有 2 个失败......我没有 11 个测试,如果你通过我的 testNG.xml 我只有 2 个 @Test 会找到,我认为它正在计算我的测试套件这一部分中的每个 TestNG 注释......
我的理论是,它试图在没有 TestNG 文件的情况下运行,并且只是在它找到的任何文件中运行每个 TestNG 注释,但我没有设置它来执行此操作,还是我这样做?