WPF MVVM自动GUI测试 - 代码覆盖率

时间:2016-11-22 21:33:51

标签: c# wpf mvvm code-coverage autotest

由于完整的WPF MVVM设计,我设法在手动场景测试期间记录所有命令并在XML文件中查看事件(抛出视图模型,如选定对象,显示对象ID,...)。 然后很容易重播录制的情景:)

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

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

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

有什么想法吗?

谢谢, 钕

3 个答案:

答案 0 :(得分:0)

如果你想在实时测试中执行代码覆盖,即不是一组单元测试,那么你可以创建一个实际激活实时代码的单元测试(例如,调用main或者你的程序运行) up),执行测试场景,然后结束程序。此时,单元测试框架(我推荐Haukinger所述的dotCover)将会看到测试已经结束,它将为您提供代码覆盖率信息。

答案 1 :(得分:0)

感谢代码项目的朋友,我终于找到了一篇很棒的文章:

https://www.codeproject.com/articles/590346/codepluscoverageplusforplusregressionplustestsplus

感谢snehal harawande免费提供有关scenarii测试的精彩文章。我确实使用.Net 4.5.2 64位(在第一批行参数上添加“x64”),我确实在VS Enterprise中导入了结果。这是完美的:))

全部谢谢

答案 2 :(得分: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的内置测试运行器和代码覆盖率检测:而不是“Debug / Start Debugging”使用“Test / Analyze Code Coverage / All Tests”。 (但是控制台测试运行器vstest.console.exe不起作用。)