2017-02-17 61 views
0

我有一個克隆的設置Spark。它有一個位於here的microbenchmark套件。如果我瀏覽一個特定的文件,例如AggregateBenchmark.scala,我看到評論中的指示來執行基準。運行火花microbenchmarks使用sbt

* To run this: 
* build/sbt "sql/test-only *benchmark.AggregateBenchmark" 

我在項目文件夾中嘗試了上述命令,但每次都忽略基準。以下是上述命令的輸出。

[info] AggregateBenchmark: 
[info] - aggregate without grouping !!! IGNORED !!! 
[info] - stat functions !!! IGNORED !!! 
[info] - aggregate with linear keys !!! IGNORED !!! 
[info] - aggregate with randomized keys !!! IGNORED !!! 
[info] - aggregate with string key !!! IGNORED !!! 
[info] - aggregate with decimal key !!! IGNORED !!! 
[info] - aggregate with multiple key types !!! IGNORED !!! 
[info] - cube !!! IGNORED !!! 
[info] - hash and BytesToBytesMap !!! IGNORED !!! 
[info] ScalaCheck 
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0 
[info] Warning: Unknown ScalaCheck args provided: -oDF 
[info] ScalaTest 
[info] Run completed in 1 second, 393 milliseconds. 
[info] Total number of tests run: 0 
[info] Suites: completed 1, aborted 0 
[info] Tests: succeeded 0, failed 0, canceled 0, ignored 9, pending 0 
[info] No tests were executed. 
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0, Ignored 9 
[success] Total time: 94 s, completed Feb 17, 2017 2:57:21 PM 

有什麼我在這裏失蹤?需要傳遞哪些額外的標誌,命令才能運行測試?

回答

1

不幸的是,沒有任何方法可以在不改變源的情況下從CLI運行被忽略的測試。

您參考的微基準測試是使用FunSuite編寫的,並使用Ignore標記系統。該API沒有能力對測試進行統一管理。有關FunSuite和忽略測試的更多信息,請參閱:http://doc.scalatest.org/3.0.1/#org.scalatest.Ignore

忽略測試有點類似於在源代碼中僅對註釋進行註釋,但其優點是可以讓源代碼對編譯器保持可見,以便測試可以保持並與他們測試的來源保持同步。開發人員選擇忽略測試的原因很多,但在這種情況下,這是因爲運行微型基準測試作爲單元測試套件的一部分開銷比較昂貴。

運行測試的唯一方法是使用您選擇的編輯器進入,並將方法調用從ignore(...)更改爲test(...),重新編譯並運行基準測試。

+0

回答我的問題。謝謝! – user2512324