这是我的场景:我正在创建一个插件,让我的学生通过 SBT(不同的主题)将他们的代码提交到我的一个自定义 CI 服务器,并且我希望能够包含一个用于与每个项目一起评分的测试用例子集(例如,JUnit 或 ScalaUnit 测试)。最好,我希望编译这些测试用例,并且我希望学生能够使用类似于 sbt test
的任务/目标来执行它们。
两个问题(也许还有更多):
- 实现这一目标的最简单方法是什么?
- 实现此目的的安全方法是什么?
现在,我正在考虑在每个作业中包含一个 JAR 文件,其中包含测试用例的子集。我可以编写一个插件来 fork JVM 并执行测试用例并报告结果。这导致了以下问题:
- 设置我自己的 Maven/Ivy 存储库来分配测试用例并让插件在每个分配的基础上包含它们会更好吗?
- SBT 可以做到这一点,而无需我编写插件吗?
谢谢!
最佳答案
对 Functional Programming principles in Scala with Martin Odersky 做了与此非常相似的事情。在洛桑联邦理工学院。他们使用了两组测试,一组与代码一起发布,学生可以在编码时运行(使用sbt test
),另一组位于服务器上,在代码编写时运行已发布。第二台(服务器)是生成报告并给出评分的服务器。这是使用 coursera 网站反馈的,但您随时可以发送邮件或其他东西。服务器不是同步完成的,而是作为批处理的一部分完成的。
还使用 Scalastyle 根据各种样式点对代码进行了分级.
不要根据在学生计算机上执行的代码来评分。这不安全。
是的,您可以在不使用插件的情况下执行此操作,只需将代码直接包含在 Build.scala 中即可。这可能是最简单的方法。
关于java - SBT 可以使用 `sbt test` 或类似的代码执行编译测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17539392/