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

时间:2014-07-18 10:08:48

标签: groovy maven-plugin

我试图测试我的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"

1 个答案:

答案 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指向测试项目的根。现在我很高兴。