将groovy脚本编写成文件

时间:2014-08-06 14:57:07

标签: groovy soapui

我想将groovy脚本结果写入我的Mac机器上的文件中。 我如何在Groovy中做到这一点? 在这里我的尝试:

log.info "Number of nodes:" + numElements
log.info ("Matching codes:"+matches)
log.info ("Fails:"+fails)

// Exporting results to a file
today = new Date()
sdf = new java.text.SimpleDateFormat("dd-MM-yyyy-hh-mm")
todayStr = sdf.format(today)
new File( "User/documents" + todayStr + "report.txt" ).write(numElements, "UTF-8" )
new File( "User/documents" + todayStr + "report.txt" ).write(matches, "UTF-8" )
new File( "User/documents" + todayStr + "report.txt" ).write(fails, "UTF-8" )

任何人都可以帮助导出结果部分吗?

谢谢, 问候, 一个 好的,我已设法用

创建一个文件
file = new File(dir + "${todayStr}_report.txt").createNewFile()

如何添加数字,匹配和失败?像这样:

 File.append (file, matches)? 

我得到了以下错误:

groovy.lang.MissingMethodException: No signature of method: static java.io.File.append() is applicable for argument types: (java.lang.Boolean, java.util.ArrayList) values: [true, [EU 4G FLAT L(CORPORATE) SP, EU 4G FLAT M(CORPORATE), ...]] Possible solutions: append(java.lang.Object, java.lang.String), append(java.io.InputStream), append(java.lang.Object), append([B), canRead(), find() error at line: 33

1 个答案:

答案 0 :(得分:1)

你的文件路径错误。我没有MAC,所以我不是100%肯定,但从我的观点来看,你应该有:

new File("/User/documents/${todayStr}report.txt").write(numElements, "UTF-8")

您缺少至少两个反斜杠,第一个在用户之前,第二个在路径中的文档之后。使用现在的方法,它会尝试保存到目录User / documentDATE,非常确定它不存在。

所以上面我用绝对路径向你展示了道路。你也可以这样写:

 new File("${todayStr}report.txt").write(numElements, "UTF-8")

如果文件已创建,那么您将100%确定文件路径存在问题:)

还有一些东西 - 因为它是一个常规的,尝试使用语言优于Java的优点,有几种处理文件的方法,我还重写了你的日志,告诉你它是多么简单在groovy中使用Strings:

log.info "Number of nodes:  ${numElements}"
log.info "Matching codes: ${matches}"
log.info "Fails: ${fails}"

我希望它有所帮助