2011-12-20 62 views
0

,努力將立即運行測試,在做以下修改後:Silverlight的測試運行兩次,如果嘗試禁用TagExpressionEditor

private void Application_Startup(object sender, StartupEventArgs e) 
    { 
     //RootVisual = UnitTestSystem.CreateTestPage(); 

     UnitTestSettings settings = UnitTestSystem.CreateDefaultSettings(); 
     settings.StartRunImmediately = true; 
     settings.ShowTagExpressionEditor = false; 

     RootVisual = UnitTestSystem.CreateTestPage(settings); 
    } 

我發現測試運行兩次。有關如何避免此行爲的任何想法?

回答

1

我只是碰到了同樣的問題,並發現它是通過設置StartRunImmediately參數設置爲true 後調用CreateTestPage(),並設置settings.TestService爲null解決:

  settings.TestService = null; 
      settings.TagExpression = e.InitParams["Tags"]; 
      RootVisual = UnitTestSystem.CreateTestPage(settings); 
      settings.StartRunImmediately = true; 
1

GDay guys,

看看我的帖子在這裏,也許對你有用。

http://itcrank.blogspot.com.au/2012/02/dodgy-silverlight-unittest-system.html

原因是當StartRunImmediately設置,測試被稱爲呼叫traight離開CreateTestPage()。

快速修復是檢查StartRunImmediately標誌AFTER調用CreateTestPage()後,如果標誌設置爲true - 在將測試頁分配給主應用的RootVisual之前,清除測試程序集的設置。

settings.TestAssemblies.Clear();

所有結果將在UI中呈現,因爲已經執行了測試。

+1

歡迎棧溢出!雖然這可能在理論上回答這個問題,[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包括答案的重要部分,並提供供參考的鏈接。否則,人們可能會投票或標記此答案。 – joran 2012-02-10 06:22:33

+0

感謝您的回覆,但我可以使用更多信息。我訪問過你的鏈接,但我仍然錯過了一些東西。如果我清除testAssemblies,則不會運行測試 – foo 2012-02-13 17:02:06

相關問題