Parallel
TAEF 提供一種機制,以跨多個處理器平行執行測試。
平行處理原則保證
- 不會同時執行未 標示為可 平行處理的兩個測試。
- 平行測試可以與其他平行和非平行測試同時執行。
- 所有模組/類別/測試設定和清除都會在相同程式中的相關測試前後以線性方式執行。
- 如果模組或類別包含至少一個平行測試,模組/類別可能會在不同的進程中平行執行。
- 平行執行模式與 「/inproc」 執行機制不相容。
將測試標示為可平行化
範例 (機器碼):
class MyTests
{
TEST_CLASS(MyTests);
BEGIN_TEST_METHOD(ParallelTest)
TEST_METHOD_PROPERTY(L"Parallel", L"true")
END_TEST_METHOD()
};
如同 TAEF 中的其他一般元數據,這可以在類別或模組層級指定,並由該類別或模組中包含的所有測試繼承。 例如,若要將整個元件標示為可平行化,您可以在編譯至測試 DLL 的 cpp 檔案中執行下列動作(在類別或測試規格之外):
BEGIN_MODULE()
MODULE_PROPERTY(L"Parallel", L"true");
END_MODULE()
然後,您可以在較小的範圍覆寫此範圍,以停用特定測試案例或類別的平行處理原則,如下所示:
class MyTests
{
TEST_CLASS(MyTests);
BEGIN_TEST_METHOD(NonParallelTest)
TEST_METHOD_PROPERTY(L"Parallel", L"false");
END_TEST_METHOD()
};
無論哪一個設定最接近測試方法(方法元數據是最接近的,然後是類別,然後模組)都會用來決定是否要與其他測試平行執行此測試。
在命令提示字元中啟用平行處理原則
平行執行是選擇加入功能。 雖然測試可能會標示為平行,但除非命令提示字元啟用平行執行模式,否則 TAEF 會繼續以線性方式執行測試:
te unittests\* /parallel