Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Xml 如何从Jenkin';Groovy脚本是什么?_Xml_File_Jenkins_Groovy - Fatal编程技术网

Xml 如何从Jenkin';Groovy脚本是什么?

Xml 如何从Jenkin';Groovy脚本是什么?,xml,file,jenkins,groovy,Xml,File,Jenkins,Groovy,我正在使用Groovy运行另一个具有不同参数的作业 最后,我将其收集为XML格式: <testsuite tests='1'> <testcase name='build_1' build_number='#882'> <failure /> </testcase> </testsuite> 我找不到创建文件的任何合理解决方案 如何准确地在此版本的文件夹中创建此文件?通过谷歌搜索和深入调试,我解决了这个问题: def

我正在使用Groovy运行另一个具有不同参数的作业

最后,我将其收集为XML格式:

<testsuite tests='1'>
  <testcase name='build_1' build_number='#882'>
    <failure />
  </testcase>
</testsuite>
我找不到创建文件的任何合理解决方案


如何准确地在此版本的文件夹中创建此文件?

通过谷歌搜索和深入调试,我解决了这个问题:

def file = new File(build.workspace.toString() + "/report.xml")
writer = file.newWriter()
builder = new groovy.xml.MarkupBuilder(writer)
// create correct repport file
builder.testsuites() {
    builder.testsuite(name: "tms-edge-load", tests: builds.size()) {
        for (bld in builds) {
            def buildName = bld.key
            def statusOfBuild = hudson.console.HyperlinkNote.encodeTo('/' + bld.value.getUrl()
                    + "console", bld.value.result.toString())
            println statusOfBuild

            if (!statusOfBuild.contains("SUCCESS")) {
                testcase(name: "$buildName") {
                    failure()
                }
            } else {
                testcase(name: "$buildName")
            }
        }
    }
}
println writer.toString()
writer.close()
文件已成功保存到项目工作区:

<testsuites>
  <testsuite name='tms-edge-load' tests='1'>
    <testcase name='build_1'>
      <failure />
    </testcase>
  </testsuite>
</testsuites>

通过谷歌搜索和深入调试,我解决了这个问题:

def file = new File(build.workspace.toString() + "/report.xml")
writer = file.newWriter()
builder = new groovy.xml.MarkupBuilder(writer)
// create correct repport file
builder.testsuites() {
    builder.testsuite(name: "tms-edge-load", tests: builds.size()) {
        for (bld in builds) {
            def buildName = bld.key
            def statusOfBuild = hudson.console.HyperlinkNote.encodeTo('/' + bld.value.getUrl()
                    + "console", bld.value.result.toString())
            println statusOfBuild

            if (!statusOfBuild.contains("SUCCESS")) {
                testcase(name: "$buildName") {
                    failure()
                }
            } else {
                testcase(name: "$buildName")
            }
        }
    }
}
println writer.toString()
writer.close()
文件已成功保存到项目工作区:

<testsuites>
  <testsuite name='tms-edge-load' tests='1'>
    <testcase name='build_1'>
      <failure />
    </testcase>
  </testsuite>
</testsuites>


是否要使用绝对文件路径写入内容?@Rao如果它有助于在生成文件夹中创建文件,为什么不呢。好的,那么您可以尝试使用绝对报告文件路径,看看是否可以解决此问题。Groovy DSL生成流已被Jenkins管道(声明式和脚本式管道)取代。如果更改为使用管道作业,则它有一个方便的“writeFile”构造。类似于“writeFile:'someFile.txt',text:'someText”。请参见此处:@macg33zr创建新文件听起来很酷。然而,我必须使用构建流插件。并在工作区中创建文件是必需的。是否要使用绝对文件路径写入内容?@Rao如果它有助于在生成文件夹中创建文件,为什么不呢。好的,那么您可以尝试使用绝对报告文件路径,看看是否能解决此问题。Groovy DSL生成流已被Jenkins管道(声明性和脚本化管道)取代. 如果更改为使用管道作业,则它有一个方便的“writeFile”构造。类似于“writeFile:'someFile.txt',text:'someText”。请参见此处:@macg33zr创建新文件听起来很酷。然而,我必须使用构建流插件。这里需要在工作区中创建文件。我正在解决一个类似的问题,即使使用您的代码,我也总是得到
java.lang.NoSuchMethodError:在步骤[acceptGitLabMR,addGitLabMRComment,[…]中找不到这样的DSL方法“testcase”
在我的管道中job@RodKimble你必须像
Build flow project
my fault那样创建你的项目。不,我正在使用一个普通的
管道作业
很抱歉,我正在与一个类似的问题作斗争,即使使用你的代码,我也总是得到
java.lang.NoSuchMethodError:在步骤中没有找到这样的DSL方法“testcase”[acceptGitLabMR,addGitLabMRComment,[…]
在我的管道中job@RodKimble你必须像
Build flow project
我的错那样创建你的项目。不,我使用的是一个普通的
管道作业
很抱歉误解