2013-04-17 81 views
1

如果我的測試成功完成,那麼駐留在我的build.sbt中的以下代碼將執行。它播放了一個很好的小調,告訴我,我的測試成功完成,使我不再像骯髒的哈利一樣盯着終端。在SBT中爲測試失敗執行任務依賴關係

test <<= (test in Test) map { result => 
    import java.io.File 
    import javax.sound.sampled._ 
    val clip = AudioSystem.getClip(); 
    val soundfile = new File("success.wav") 
    val inputStream = AudioSystem.getAudioInputStream(soundfile); 
    clip.open(inputStream); 
    clip.start(); 
    result 
} 

所以我開始我的測試〜測試和關閉它去。每次我在編輯器中點擊保存,測試都會自動重新運行,如果它們通過,你就會在這裏聽到叮噹聲。

問題是:如果測試失敗,我怎麼能播放聲音?目前它只是在失敗時保持安靜。

回答

1

請參閱Handling Failure。例如,

... test in Test mapR { 
    case Inc(inc: Incomplete) => 
    ... play failure sound ... 
    throw inc 
    case Value(v) => 
    ... play success sound ... 
    v 
} 
+0

這樣做的伎倆,謝謝! – Jack