2011-12-20 60 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