Я пытаюсь настроить задачу, которая будет генерировать единый отчет из коллекции результатов теста двоичных junit, но я не могу создать FileCollection
, содержащий пути, в которых весь результат файлы находятся.Gradle получить файл коллекции родительских каталогов
Моя задача определяется как этот
task aggregateTestREports(type: org.gradle.api.tasks.tests.TestSupport) {
destinationDir = reportDir
testResultsDirs = ???
}
где ??? это та часть, с которой я не работаю.
я могу использовать следующий код, чтобы получить список файлов output.bin в нашей структуре сборки, но мне нужно, чтобы преобразовать это в список каталогов, файлы находятся в.
fileTree(dir: '.', includes: ['**/test-results/binary/test/output.bin'])
I «ве попытался создать пользовательский класс из базового класса, как это и передавая результаты этой строки с параметром testOutputBinFiles
и вычисляя файлы динамически
class AggregateTestReport extends TestReport {
@Input
def testOutputBinFiles
def getTestResultDirs() {
def parents = []
testOutputBinFiles.each {
File file -> parents << file.parentFile.absoluteFile
}
parents
}
}
, но это дает мне ошибку, что возвращаемое значение не совместимо с a FileCollection
Документы для FileCollection
указывают, что единственный способ получить новый - использовать функцию files()
, но она не доступна из пользовательского класса для получения нового файла.