我使用选项“ Java Modular Project”在Apache Netbeans 10中创建了一个新项目,创建了一个模块,将现有源包复制到模块的“类”树中,并将现有测试包(使用TestNG frameork)复制到“测试”树。配置依赖项并适当调整module-info.java文件后,不会显示任何错误,并且“清理并生成项目”不会报告任何错误。
但是我无法执行任何TestNG测试。右键单击单个测试类,然后选择“测试”或“运行”,则什么也不会发生。右键单击我的主测试套件XML文件,然后选择“测试”,将在控制台上显示以下内容(压缩路径以便于阅读):
/home/.../ProjectName/nbproject/build-impl.xml:1629: The following error occurred while executing this line:
/home/.../ProjectName/nbproject/build-impl.xml:557: The following error occurred while executing this line:
/home/.../ProjectName/nbproject/build-impl.xml:544: The following error occurred while executing this line:
/home/.../ProjectName/nbproject/build-impl.xml:495: /home/.../ProjectName/build/test/classes does not exist.
BUILD FAILED (total time: 0 seconds)
我不知道为什么构建过程引用了build/test/classes
,因为它看起来像Java模块化项目使用了路径build/test/modules
(至少当我使用“文件”窗口时,这就是我看到的内容)检查目录结构。
这些测试在Netbeans 8中使用非模块化Java项目都运行良好,因此问题不在测试本身中。
在涉及模块化Java项目的Netbeans中,是否知道TestNG的构建/运行过程已中断,或者在创建和配置此模块化项目时我做错了什么?
更新:在Netbeans 10中将整个项目重新创建为Maven项目,生成和测试操作确实导致TestNG测试类得以编译和执行。因此,我相信这是Netbeans 10用于模块化Java项目的Ant构建脚本的问题。