我正在更新一个groovy脚本,它在SoapUI中构建一个测试运行器套件。脚本扫描文件夹并为每个文件夹中的每个文件添加测试用例。
我试图解决的问题是脚本使用的是eachFileMatch()
,它在Windows和Unix文件系统之间没有一致的行为。我需要更新脚本,以便按字母顺序列出文件。
我对groovy很新,所以我不知道从哪里开始。看到sort()方法确实存在,但我不确定我是否可以在eachFileMatch上使用它。
这是我需要修改的代码段:
new File(projectPathTest+"/nord").eachDir{dir->
log.info("Dir > "+dir);
operation = dir.name
def wsdlTestCase = testSuite.addNewTestCase( operation )
wsdlTestCase.setFailOnError(false)
dir.eachFileMatch(~/.*_request\.xml/){file->
// Need Alphabetically sorting here
log.info("File >> "+file)
addTestStep(operation, file, wsdlTestCase, projectPath, endPoint)
}
要做到这一点的任何出发点都会非常感谢groovy方法,因为现在我还没来得及深入研究groovy API。
此致 }
答案 0 :(得分:0)
您可以收集TreeSet
中的文件,这些文件将维护其排序顺序,然后遍历该集以显示或以其他方式处理您的文件集。
TreeSet<File> files = new TreeSet<File>()
dir.eachFileMatch(~/.*_request\.xml/){file->
files << file
}
files.each { f->
// log or do whatever with the files in order
}
如果您需要对所有文件进行此排序,则需要将TreeSet
放在eachDir
关闭之外。