我试图测试我的maven插件。
布局是:
的src
\主\的java \ my.mojo.is.here
..... \它\调用的安装程序写入到文件的\ src \ pom.xml的
其中 ..... \ it \ invoke-installer-write-to-file \ src \ pom.xml 是一个测试项目。它的pom.xml会调用插件,然后我会验证结果。
我已经创建了两个测试项目并使用maven-invoker-plugin来测试插件。 我有一个常规验证器:
String successMessage = 'Test passed'
String outputFilePath = "${project.build.directory}/it/invoke-installer-write-to-file/target/test.output"
File outputFile = new File(outputFilePath)
println "We should get message '$successMessage' from file: $outputFile.absolutePath"
return new File(outputFilePath).exists() && new File(outputFilePath).text.contains(successMessage)
问题是测试项目中的变量 project.build.directory 指向插件项目的目标。
是否有可能让 project.build.directory 指向测试项目目标?
现在我必须硬编码测试项目路径的路径
String outputFilePath = "${project.build.directory}/it/invoke-installer-write-to-file/target/test.output"
答案 0 :(得分:0)
String successMessage = 'Test passed'
String outputFilePath = "$basedir/target/test.output"
File outputFile = new File(outputFilePath)
println "We should get message '$successMessage' from file: $outputFile.absolutePath"
return new File(outputFilePath).exists() && new File(outputFilePath).text.contains(successMessage)
我找到了这个:http://maven.apache.org/plugins/maven-invoker-plugin/examples/post-build-script.html
basedir指向测试项目的根。现在我很高兴。