我有一个Gradle脚本,需要查看SpecFlow.exe的文件路径。问题是,路径将在名称中包含当前版本的SpecFlow。由于我将在许多将使用SpecFlow的项目中使用类似的脚本,因此我不希望它们必须与特定版本耦合,以防我们将来升级。这就是目前tas /命令的样子:
task testReports (type: Exec) {
mkdir('testReports')
commandLine 'cmd', '/c', '..\\packages\\SpecFlow.1.9.0\\tools\\specflow.exe','nunitexecutionreport', 'pathtocsproj/myproject.csproj', '/xmlTestResult:..\\nunitoutput_myproject.xml', '/out:testReports\\TestResult_myproject.html'
}
我尝试了以下内容:
task testReports (type: Exec) {
mkdir('testReports')
commandLine 'cmd', '/c', '..\\packages\\SpecFlow.*\\tools\\specflow.exe', 'nunitexecutionreport', 'pathtocsproj/myproject.csproj', '/xmlTestResult:..\\nunitoutput_myproject.xml', '/out:testReports\\TestResult_myproject.html'
}
但是这给了我一个错误:"> Process 'command 'cmd'' finished with non-zero exit value 1"
我有办法在这条路径中加入通配符吗?
答案 0 :(得分:2)
您可以创建一个文件树 - http://www.gradle.org/docs/current/userguide/working_with_files.html - 使用包含过滤器匹配**/SpecFlow.exe
,然后调用其http://www.gradle.org/docs/current/javadoc/org/gradle/api/file/FileCollection.html#getSingleFile()并从中获取路径。当然,如果安装了此软件包的更多版本,您将如何处理案例。