12

我已經按照http://blogs.msdn.com/b/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx的指示信,我可以並行執行測試。並行運行單元測試超過五個核心

到目前爲止這麼好。

現在的問題是:我無法將parallelTestCount設置爲零(自動配置)或5以上的值。運行五個並行測試正常工作,但不是六個。

是的我的機器上有五個以上的內核;我正在運行一個英特爾i7處理器,這個處理器有四個超線程核心,這意味着我應該能夠並行運行8個測試。

現在我確定還有一些其他邏輯或硬性限制,我不希望能夠在八個內核上並行運行八個閃速加速測試。

但是,知道它不能同時運行多於五個測試的原因會很酷嗎?

+0

當你說你不能將它設置爲零時,什麼阻止了它?你有錯誤信息嗎? – 2010-08-11 14:29:30

+0

Doh - 我忘了說!當我運行設置爲0的測試時,我得到一個「未執行」的測試,另外7個測試立即變爲「異常終止」。沒有更多的信息。當我將它設置爲6有趣的時候,我得到兩個「未執行」的測試,其餘的都是「中止」。與設置爲7相同。設置爲8時,立即讓所有測試「中止」。 – noopman 2010-08-12 20:54:37

+0

也許只用一組簡單的測試,不會做任何壯觀的事情,以便您可以確定問題出在你正在運行的測試還是測試框架本身中? – obelix 2010-08-13 06:06:39

回答

6

看來這是MSTest中的一個錯誤。我偶然發現了同樣的問題,所有測試都被標記爲中止,並且在測試結果窗口中有一個「測試運行錯誤」鏈接,如果單擊該鏈接,將產生以下消息:「測試運行正在中止,」掛起測試數超過最大允許'5'「。

更新:它已在Visual Studio 2010 Service Pack中修復。

+0

我可以確認!看起來這是VS將我們切斷! – noopman 2010-08-19 06:09:16

+1

在此處提到Microsoft Connect問題:https://connect.microsoft.com/VisualStudio/feedback/details/587386/running-more-than-five-tests-in-parallel-does-not-work – 2010-08-27 20:44:28

1

它可能只是我,但超線程並不是一個真正的核心,所以i7只有4個物理內核,而不是8個。也許這是與此有關的。

或者,也許有一些bios設置與操作系統正在阻止超線程的方式有關。

+0

你很可能是對的,但是這怎麼解釋我可以輕鬆地運行5個測試而不僅僅是4個? – noopman 2010-08-17 05:29:08

+0

我想在理論上HT應該允許更多,但也許在BIOS中有一些限制HT可以被使用的東西,並且當前設置允許VS做5但沒有更多並且改變它可以允許更多。 – Peter 2010-08-17 09:52:26