测试maven插件,project.build.directory属性用于测试项目



我正在测试我的maven插件。

布局为:

src

主要

java my.mojo.is.here

… invoke-installer-write-to-file src pom.xml

其中.....itinvoke-installer-write-to-filesrcpom.xml是一个测试项目。它的pom.xml调用插件,然后我验证结果。

我创建了两个测试项目,并使用maven-invoker-plugin来测试插件。我有一个groovy验证器:

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。测试项目中的目录指向插件项目的目标。

是否有可能使project.build。目录指向测试项目目标?

现在我必须硬编码一个路径来测试项目路径

String outputFilePath = "${project.build.directory}/it/invoke-installer-write-to-file/target/test.output"
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指向测试项目的根目录。

最新更新