我想将Specs2测试结果与Jenkins集成。
我在sbt:
中添加了以下属性分解器:
"maven specs2" at "http://mvnrepository.com/artifact"
libraryDependencies:
"org.specs2" %% "specs2" % "2.0-RC1" % "test",
系统属性:
testOptions in Test += Tests.Setup(() => System.setProperty("specs2.outDir", "/target/specs2-reports")) //Option1
//testOptions in Test += Tests.Setup(() => System.setProperty("specs2.junit.outDir", "/target/specs2-reports")) //Option2
testOptions in Test += Tests.Argument(TestFrameworks.Specs2, "console", "junitxml")
如果我运行以下命令,则不会在上述目录中生成任何规格报告(“/ target / specs2-reports”)。
SBT>测试
如果我运行以下命令,它会询问目录,如下面的错误消息所示:
SBT>仅限测试 - junitxml
[error]无法运行测试代码.model.UserSpec:java.lang.IllegalArgumentException:junitxml需要指定目录,例如:junitxml(directory =“xxx”)
只有当我给出如下所示的目录时它才有效:
SBT> test-only - junitxml(directory =“\ target \ specs-reports”)
但有时它没有生成所有规格报告xmls(有时只生成一个报告,有时只生成两个报告等。)
如果我在jenkins中提供仅限测试 - junitxml(directory =“\ target \ specs-reports”),则会出现以下错误。
[error] Not a valid key: junitxml (similar: ivy-xml)
[error] junitxml(
[error] ^
我的主要目标是,我想以junit xml格式生成整合的测试报告并与Jenkins集成。请帮助我解决我的问题。
最诚挚的问候,
哈
答案 0 :(得分:8)
junitxml输出目录的选项是:“specs2.junit.outDir”,默认值为“target / test-reports”。
因此,如果你不改变任何东西,你可以指示Jenkins从“target / test-reports”中抓取xml文件,这就是我通常所做的。
此外,您可能必须在引号中将您的sbt命令包含在Jenkins中。这就是我通常做的事情:
"test-only -- html junitxml console"