2016-11-22 46 views
0

感谢完整的WPF MVVM设计,我设法在手动过程中记录所有命令和视图事件(抛出视图模型,像选定对象,显示对象id,...)在XML文件中scenarii测试。 然后很容易重播录制的情景:)WPF MVVM自动GUI测试 - 代码覆盖率

它工作正常,并允许快速检查我的大部分代码 - 我为它感到自豪,对.Net感到如此兴奋! ; o)

但是,我怎么能检查我的代码覆盖率?

我没有在这种情况下使用单元测试,只是在调试模式下运行应用程序但我想知道哪些代码被测试/未测试。

任何想法?

感谢, 钕

+0

类似这样的东西?请参阅**手动报道**部分:https://www.jetbrains.com/help/dotcover/2016.1/Getting_Started_with_dotCover.html – Haukinger

+0

嗨。感谢你的回答。我不知道Resharper的这个功能(仅限Ultimate版本)。我会看看,但我不确定是否能够得到我的老板支付:)我会尝试,如果我没有找到一个免费的方式来看我的代码覆盖率。 – NitroDeath

+0

您好Haukinger,我测试了DotCover,它使用起来非常简单并且高效。我没有另一种免费的方式来覆盖我的代码,所以我会尝试购买它。非常感谢 – NitroDeath

回答

0

如果你想在现场测试中表现的代码覆盖率,即不是一套单元测试,那么你就可以创建真正激发了现场码一个单元测试(例如使调用main或者你的程序运行),执行你的测试场景,然后结束程序。此时,单元测试框架(我会推荐按照Haukinger的说法推荐dotCover)将会看到测试已经结束,它将为您提供代码覆盖率信息。

+0

嗨,我会再次看看,但直到现在结果是不是太棒了:)。这个观点并没有真正表现出来;它只在开始时闪烁,我不能再看到它。如果我的视图不能显示,我将没有渲染,我需要测试它:(在一个空的项目上试过,并尝试在另一个线程中启动,而UT正在睡觉,而不是更好。我错过了什么? – NitroDeath

0

增加提及Microsoft.VisualStudio.QualityTools.UnitTestFramework,然后修改您的App.xaml.cs如下:

+using System.Reflection ; 
+using Microsoft.VisualStudio.TestTools.UnitTesting ; 

namespace YourAppNamespace 
{ 
    /// <summary> 
    /// Interaction logic for App.xaml. 
    /// </summary> 
+ [TestClass] 
    public partial class App 
    { 
+  [TestMethod] 
+  public void Test() 
+  { 
+   ResourceAssembly = Assembly.GetExecutingAssembly() ; 
+   InitializeComponent() ; 
+   Run() ; 
+  } 
    } 
} 

现在你可以使用Visual Studio内置的测试运行器和代码覆盖仪表:而不是“调试/开始调试”使用“测试/分析代码覆盖率/所有测试”。 (虽然控制台测试运行器vstest.console.exe不起作用。)