仅在 Linux 时出现 TestSetFailedException

TestSetFailedException only on Linux

我们正在尝试通过 maven 命令 运行 testng 文件。 testng文件名:testSMOKE.xml.

maven 命令:

mvn clean test -Dtestng.suite.xml.file=config/components/smoke/testSmoke.xml

该命令在 Windows 台机器上有效,但由于测试套件的文件名,同一命令在 linux 台机器上无效。

Exception:
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
[ERROR] Caused by: org.apache.maven.surefire.testset.TestSetFailedException: Suite file /data2/pcf/Yucca/config/components/smoke/testSmoke.xml is not a valid file
[ERROR]         at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:99)
[ERROR]         at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:119)
[ERROR]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]         at java.lang.reflect.Method.invoke(Method.java:498)

这里有什么区别?

在Windows中文件名不区分大小写,所以testSMOKE.xml = testSmoke.xml.

在Linux中,文件名区分大小写,所以testSMOKE.xml和testSmoke.xml是不同的文件。确保您的命令行参数与区分大小写的文件名相匹配:

mvn clean test -Dtestng.suite.xml.file=config/components/smoke/testSMOKE.xml
                                                                   ^^^^^