请原谅新问题 - 我的概念模型仍然不完整......
我正在尝试使用maven和surefire从命令行重新执行TestNG测试。我的命令行如下:
D:\workspaces\workspace01\aptest>mvn clean install surefire:test -Dtests=myTestNGSuite test
显然我没有得到它,因为我最终得到的输出包括:
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ aptest ---
[INFO] Skipping execution of surefire because it has already been run for this configuration
如何清除配置,以便从命令行重新运行TestNG套件?有没有更好的方法从命令行运行TestNG套件?
TIA, - >亚伦
答案 0 :(得分:3)
根据你给出的命令
mvn clean install surefire:test -Dtests=myTestNGSuite test
BTW:参数测试应该命名为 test
表示运行安装life-cycl e,这意味着要执行以下步骤:
你可以看到,在这个生命周期内,测试阶段已经运行了...换句话说, surefire:test 没有意义也没有测试会像这样运行生命周期:
因此,要在TestNG中运行套件,就可以像这样调用Maven:
mvn -Dtest=myTestNGSuite test
或者如果您在此之前运行测试生命周期,则可能会缩短:
mvn -Dtest=myTestNGSuite surefire:test
此外,通常你不应该在JUnit和TestNG中使用测试套件,因为maven-surefire-plugin会自动识别正确位置(src / test / java)中的单元测试。所以没有必要编写测试套件。顺便说一下,你应该定义一个更新的maven-surefire-plugin版本(同时2.13)。
答案 1 :(得分:2)
surefire插件的测试目标在测试阶段自动运行,因此第一次运行
mvn clean install -Dtest=MyTestNGTest
然后如果你想重新开始做
mvn install -Dtest=MyTestNGTest
请注意,我没有调用干净的目标,因此只会重新编译测试用例或代码的更改,而且我不会调用surefire插件的测试目标。