Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 运行easyb\selenium时出现permgen错误_Ant_Selenium_Jenkins_Gradle_Easyb - Fatal编程技术网

Ant 运行easyb\selenium时出现permgen错误

Ant 运行easyb\selenium时出现permgen错误,ant,selenium,jenkins,gradle,easyb,Ant,Selenium,Jenkins,Gradle,Easyb,我有6种技术在发挥作用 容易的 硒 格拉德尔 蚂蚁 JAVA 詹金斯 我们使用easyB编写场景 这些场景依次调用Selenium 最后,我们使用Gradle启动所有故事。 由于我们没有针对easyB的gradle插件,gradle实际上使用ant来运行easyB 这个Gradle脚本最终通过一个Jenkins作业执行 完整执行大约需要3-4小时。 中途,我们得到一个perm gen错误 我不确定哪个过程需要增加PermGen 容易吗? 蚂蚁 格拉德尔 错误消息 [ant:easyb]重试值现

我有6种技术在发挥作用

容易的 硒 格拉德尔 蚂蚁 JAVA 詹金斯

我们使用easyB编写场景
这些场景依次调用Selenium
最后,我们使用Gradle启动所有故事。 由于我们没有针对easyB的gradle插件,gradle实际上使用ant来运行easyB

这个Gradle脚本最终通过一个Jenkins作业执行

完整执行大约需要3-4小时。 中途,我们得到一个perm gen错误

我不确定哪个过程需要增加PermGen

容易吗? 蚂蚁 格拉德尔


错误消息
[ant:easyb]重试值现在为:2
[ant:easyb]objectID设置为:60868
[ant:easyb]创建主体60868后中断
[ant:easyb]创建就诊>>>>>预处理
[ant:easyb]创建映像组>>>>>auto-gp1
[ant:easyb]运行easyb故事或规范时出错
[ant:easyb]java.lang.OutOfMemoryError:PermGen空间
[ant:easyb]easyb执行失败

失败:生成失败,出现异常


渐变脚本

check << {
    def script = new GroovyShell()
    script.run(new File('InitializeReport.groovy'))

    ant.taskdef(name: "easyb", classname:"org.easyb.ant.BehaviorRunnerTask", classpath: sourceSets.test.runtimeClasspath.asPath)

    ant.easyb( classpath: sourceSets.test.runtimeClasspath.asPath, failureProperty:'easyb_failed' ,tags:tags) {
        report( location:"${project.testResultsDir}/story."+format, format:format )
        behaviors( dir: storiesHome ) {
            include( name:storyToBeExecuted )
        }
   }

    ant.fail( if:'easyb_failed', message: 'Failures in easyb stories' )
}

检查您需要增加perm gen空间,您可以通过VM设置设置max参数来实现这一点。在命令行上,使用以下选项启动Java:

-XX:MaxPermSize=128m


另请参见:

按照您实现它的方式,easyB测试将在“主”Gradle JVM中运行(除非easyB Ant任务派生一个新的JVM,我对此表示怀疑)。将JVM选项传递给该进程的一种方法是通过
Gradle\u OPTS
环境变量:

export GRADLE_OPTS="-XX:MaxPermSize=128m"

设置此选项的其他方法有
properties.gradle
(有关详细信息,请参阅)或调整
gradlew
脚本(如果您碰巧使用了gradle包装器)。

用于哪个进程?Ant?gradle?EasyB?导致错误的进程。对所有人来说,这都没有坏处!我确实将GRADLE_OPTS添加到了我的env变量中——这似乎没有什么帮助。我想我可以尝试其他替代方法……要么您在设置环境变量时出错,要么easyB Ant任务派生了一个新的JVM。我找不到关于后者的任何迹象。使用*nix上的
ps
或Windows上的Process Explorer之类的工具,您可以轻松地检查哪些命令行参数被传递到Gradle进程,以及
-XX:MaxPermSize
是否在其中。我离此越来越近了。。我可以看到Gradle进程实际上正在获得内存选项(我必须编辑Gradle脚本),但是从Gradle启动的EasyB脚本没有被传递内存选项。因此,看起来EasyB Ant任务实际上创建了一个新进程,这使得这是一个纯粹的EasyB(Ant任务)问题。我没有看到将内存选项传递给Ant任务的方法,但最好在easyB列表上询问。好吧,我想我终于到了——不是Gradle产生了第二个进程。但是蚂蚁的任务。。。。如果是这样的话——你是对的,那将是一个Q for easyB列表。谢谢你的帮助和耐心。