2016-01-21 14 views
0

我用Minitest,Minitest :: Reporters Gem和Rakefile配置了一個測試套件。所有與「parallelize_me!」運行選項Ruby Webdriver。使用Minitest Reporter Gem SpecReporter和並行運行的輸出不正確

問題是輸出未正確顯示,因爲它顯示當前正在執行「Suite_X」的測試用例,並且測試用例完成時顯示「test_xxx」結果。如果你有很多測試套件,最終的輸出結果很難理解。

我認爲這將是更好,如果測試用例當前執行的「Suite_X」不是節目,因爲我可以在測試用例本身就像我已經做了投入名稱:

$ N=4 rake 
/home/usuario/.rvm/rubies/ruby-2.2.1/bin/ruby -I"lib:tests" -I"/home/usuario/.rvm/gems/ruby-2.2.1/gems/rake-10.5.0/lib" "/home/usuario/.rvm/gems/ruby-2.2.1/gems/rake-10.5.0/lib/rake/rake_test_loader.rb" "tests/test_helper.rb" "tests/test_suite_a.rb" "tests/test_suite_b.rb" 
Started with run options --seed 33064 


# Running tests with run options --seed 33064: 

Suite_A 
Suite_A 
Suite_ASuite_A 

    test_search_suite_a_1            PASS (25.09s) 
. 
Suite_B 
    test_search_suite_a_2            PASS (25.12s) 
. 
Suite_B 
    test_search_suite_a_3            PASS (25.65s) 
. 
Suite_B 
    test_search_suite_a_4            PASS (25.67s) 
. 
Suite_B 
    test_search_suite_b_4            PASS (13.05s) 
. test_search_suite_b_3            PASS (12.64s) 
. test_search_suite_b_1            PASS (13.58s) 
. test_search_suite_b_2            PASS (16.41s) 
. 
Finished in 41.52647s 
8 tests, 0 assertions, 0 failures, 0 errors, 0 skips 


Finished tests in 41.526445s, 0.1926 tests/s, 0.0000 assertions/s. 


8 tests, 0 assertions, 0 failures, 0 errors, 0 skips 

Minitest Reporters: Mean Time Report (Samples: 13, Order: :avg :desc) 
Avg: 16.581905858 Min: 0.0   Max: 33.548447061 Last: 0.0   Description: Suite_A 
Avg: 14.896940034 Min: 0.0   Max: 30.567633492 Last: 15.852995213 Description: Suite_B 

回答

1

這是因爲parallelize_me使用線程Minitest :: Reporter gem不處理這種情況。如果您希望在報告中添加同步功能,可能會很痛苦,因爲我非常確定記者寶石是通過一系列回調工作的,所以您基本上必須同步每種測試運行的類型失敗的目的。

或者,你可以讓每個線程打印到不同的IO和處理那些無論你想

在我看來(在例如運行結束打印),你最好只是沒有使用與記者parallelize_me

相關問題