鑑於這種測試夾具:強制MSTest的使用單個線程
[TestClass]
public class MSTestThreads
{
[TestMethod]
public void Test1()
{
Trace.WriteLine(Thread.CurrentThread.ManagedThreadId);
}
[TestMethod]
public void Test2()
{
Trace.WriteLine(Thread.CurrentThread.ManagedThreadId);
}
}
運行通過Visual Studio或命令行MSTest的測試打印的兩個不同的線程編號(但他們被依次無論如何運行)。
有沒有辦法強制MSTest使用單線程來運行它們?
需要相同的應用程序UI線程上運行,因爲它們都必須使用自動化UI測試一個單一的靜態WPF應用程序類,不能實例化多次(WPF的限制,不是我的)。該技術適用於NUnit。 – 2011-02-18 04:10:47
我通過爲每個測試創建一個新的appdomain,在該appdomain內執行測試主體,並在每個測試中創建一個新的App實例來解決此問題。我可以看到爲什麼在大多數情況下這會很痛苦,但就我而言,我編寫了自己的應用程序類,所以我沒有通過添加樣板文件來重複任何測試。 – 2011-03-29 02:50:02
另外,如果你正在分享一個應用程序實例,理論上你可以爲它創建一個UI線程,並分享它。 – 2011-03-29 02:53:14