我有一个嵌套的 TestNG 套件文件配置,可以在 Linux 上完美运行,但是当我尝试在 Windows 上运行时,路径被搞砸了,最终出现“找不到文件”异常。
Windows 文件系统结构是这样的:
C:\MyProject\RootSuite.xml
C:\MyProject\subfolder1\ChildSuite.xml
C:\MyProject\subfolder1\subfolder2\GrandChildSuite.xml
RootSuite.xml 如下所示:
<suite name="RootSuite" verbose="2" thread-count="1" parallel="false">
<suite-files>
<suite-file path="subfolder1/ChildSuite.xml" />
</suite-files>
</suite>
ChildSuite.xml 看起来像这样(使用相对于“subfolder1”的路径):
<suite name="ChildSuite" verbose="2" thread-count="1" parallel="false">
<suite-files>
<suite-file path="subfolder2/GrandChildSuite.xml" />
</suite-files>
</suite>
当我在 Windows 上运行时,似乎将 GrandChildSuite.xml 的相对路径扔回项目的根目录。我收到如下错误:
Running TestSuite
java.io.FileNotFoundException:
C:\MyProject\newfolder2\GrandChildSuite.xml
(The system cannot find the path specified)
同样,这在 Linux/OSX 上运行良好,因此 TestNG 似乎能够支持这样的相对套件文件路径。此外,TestNG 正在将文件路径分隔符从 / 转换为 \。所以,这似乎不是问题。
我正在使用 Maven Surefire 插件启动 TestNG。我从命令行和 Eclipse TestNG 插件都试过了。两者都表现出相同的行为。
我还没有找到很多像这样以嵌套方式使用套件文件的人的例子,因此感谢您的帮助。谢谢!