7

我想将 Specs2 测试结果与 Jenkins 集成。

我在 sbt 中添加了以下属性:

解析器:

"maven specs2"      at  "http://mvnrepository.com/artifact"

库依赖项:

"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

[错误] 无法运行测试 code.model.UserSpec:java.lang.IllegalArgumentException:junitxml 需要指定目录,例如:junitxml(directory="xxx")

只有当我提供如下所示的目录时,它才有效:

sbt> 仅测试 -- junitxml(directory="\target\specs-reports")

但有时它不会生成所有规格报告 xml(有时只生成一份报告,有时只生成两份报告等)。

如果我在jenkins 中仅提供测试 -- junitxml(directory="\target\specs-reports"),则会出现以下错误。

[error] Not a valid key: junitxml (similar: ivy-xml)
[error] junitxml(
[error]         ^

我的主要目标是,我想生成 junit xml 格式的综合测试报告并与 Jenkins 集成。请帮助我解决我的问题。

此致,

哈里

4

1 回答 1

8

junitxml 输出目录的选项是:“specs2.junit.outDir”,默认值为“target/test-reports”。

因此,如果您不更改任何内容,您可以指示 Jenkins 从“target/test-reports”中获取 xml 文件,这是我通常所做的。

此外,您可能必须用引号将 Jenkins 中的 sbt 命令括起来。这是我通常做的:

"test-only -- html junitxml console"
于 2013-10-05T01:39:29.380 回答