我正在设置 Randoop 测试用例生成以在我的项目中运行。我通过 JavaExec 类型的 Gradle 任务实现了这一点:
task RandoopGenerateL1Tests(dependsOn: ['assembleDebug']) {
group = "Verification"
description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
//Various setup things here...
doLast {
javaexec {
classpath = tasks['testDebugUnitTest'].classpath
classpath = classpath + files('D:\\randoop-3.1.5\\randoop-all-3.1.5.jar')
systemProperty 'RANDOOP_PATH', 'D:\\randoop-3.1.5'
systemProperty 'RANDOOP_JAR', 'D:\\randoop-3.1.5\\randoop-all-3.1.5.jar'
def classlistarg = '--classlist=' + classlistfilepath
def packagenamearg = '--junit-package-name=' + key
def junitoutputdirarg = '--junit-output-dir=' + projectDir.path + '/src/randooptest/java'
def timelimitarg = '--timeLimit=10'
main = 'randoop.main.Main'
args 'gentests',classlistarg,packagenamearg,junitoutputdirarg,timelimitarg
println "Randoop will be invoked with args: " + args.toString()
}
}
}
--timeLimit=10 参数旨在对 Randoop 的探索阶段应用时间限制(以秒为单位),但这对我来说只是偶尔起作用。在此任务的某些执行中,Randoop 开始探索阶段,然后“冻结”——java.exe 进程消耗 0% CPU 并且没有输出发生。
是否可以对 JavaExec 任务设置时间限制以对该任务应用时间限制?
谢谢!