2013-07-09 38 views
0

這是我的場景:我正在創建一個插件,讓我的學生通過SBT(不同的主題)將他們的代碼提交給我的自定義CI服務器之一,我希望能夠包含一個子集用於評分的測試用例(例如,JUnit或ScalaUnit測試)以及每個項目。最好是,我希望編譯這些測試用例,我希望學生能夠使用類似於sbt test的任務/目標執行它們。SBT可以用`sbt test`或類似的方法執行編譯測試嗎?

兩個問題(也許有的更多):

  1. 什麼是實現這一目標的最簡單的方法?
  2. 什麼是安全的方式來實現這一點?

現在,我正在考慮在每個包含測試用例子集的任務中包含一個JAR文件。我可以編寫一個插件來分析JVM並執行測試用例並報告結果。這導致以下問題:

  1. 它會更好,以建立自己的Maven /常春藤庫分配測試用例和有插件包括他們在每個任務的基礎?
  2. SBT可以做到這一點,而無需我寫一個插件?

謝謝!

回答

1

在EPFL上爲Functional Programming principles in Scala with Martin Odersky做了非常類似的事情。他們使用了兩套測試,一種是用代碼發佈的,學生在編碼時可以運行(使用sbt test),另一種是在服務器上運行,當代碼發佈時運行。第二個(服務器)是生成報告並給出評分的那個。這是使用coursera網站反饋的,但您可以隨時發送郵件或其他內容。服務器沒有同步完成,它是作爲批處理的一部分完成的。

該代碼還使用Scalastyle對各種樣式點進行分級。

不要將您的成績基於在學生機器上執行的代碼。這不安全。

是的,您可以在不使用插件的情況下做到這一點,您只需將代碼直接包含在Build.scala中即可。這可能是最簡單的方法。