使用 SBT 为 JGiven 生成 HTML 报告
Generate HTML report for JGiven with SBT
我在我的 Play 2.3.x 应用程序之一中使用 JGiven 进行测试。 documentation 解释了如何为 Maven 和 Gradle 生成 HTML 报告。但是SBT没有可用的东西。
是否有任何解决方法可以在测试结束时生成报告?也许通过在 build.sbt
中添加一些东西?我试着玩 "javaOptions in Tests" 但不知道如何让它工作。
谢谢。
我不太了解 SBT,但是,正如@ahus1 在他的评论中已经提到的那样,您可以调用 com.tngtech.jgiven.report.ReportGenerator
main class。例如:
build.sbt:
libraryDependencies += "com.tngtech.jgiven" % "jgiven-html5-report" % "0.9.3"
在命令行上:
$ sbt
> run-main com.tngtech.jgiven.report.ReportGenerator --sourceDir=target/jgiven-reports/json/ --targetDir=target/jgiven-reports/html
如果你能告诉我你的最终解决方案,那就太好了,这样我就可以在 JGiven 文档中记录它。
请参阅下面我使用专用 SBT 任务的解决方案。
- 首先添加
jgiven-html5-report
依赖:
libraryDependencies += "com.tngtech.jgiven" % "jgiven-html5-report" % "0.15.3" % "test"
- 然后声明一个新任务。我们称它为
livingDocumentation
:
lazy val livingDocumentation = taskKey[Unit]("Generate HTML5 JGiven report")
livingDocumentation := Def.sequential(
test in Test,
runMain in Test toTask " com.tngtech.jgiven.report.ReportGenerator"
).value
使用 Def.sequential
,我可以链接 2 个任务并确保源 JSON 报告可用。
- 最后,运行 SBT 任务使用
sbt livingDocumentation
我在我的 Play 2.3.x 应用程序之一中使用 JGiven 进行测试。 documentation 解释了如何为 Maven 和 Gradle 生成 HTML 报告。但是SBT没有可用的东西。
是否有任何解决方法可以在测试结束时生成报告?也许通过在 build.sbt
中添加一些东西?我试着玩 "javaOptions in Tests" 但不知道如何让它工作。
谢谢。
我不太了解 SBT,但是,正如@ahus1 在他的评论中已经提到的那样,您可以调用 com.tngtech.jgiven.report.ReportGenerator
main class。例如:
build.sbt:
libraryDependencies += "com.tngtech.jgiven" % "jgiven-html5-report" % "0.9.3"
在命令行上:
$ sbt
> run-main com.tngtech.jgiven.report.ReportGenerator --sourceDir=target/jgiven-reports/json/ --targetDir=target/jgiven-reports/html
如果你能告诉我你的最终解决方案,那就太好了,这样我就可以在 JGiven 文档中记录它。
请参阅下面我使用专用 SBT 任务的解决方案。
- 首先添加
jgiven-html5-report
依赖:
libraryDependencies += "com.tngtech.jgiven" % "jgiven-html5-report" % "0.15.3" % "test"
- 然后声明一个新任务。我们称它为
livingDocumentation
:
lazy val livingDocumentation = taskKey[Unit]("Generate HTML5 JGiven report")
livingDocumentation := Def.sequential(
test in Test,
runMain in Test toTask " com.tngtech.jgiven.report.ReportGenerator"
).value
使用 Def.sequential
,我可以链接 2 个任务并确保源 JSON 报告可用。
- 最后,运行 SBT 任务使用
sbt livingDocumentation