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

WPF MVVM auto GUI test - Code coverage

感谢完整的 WPF MVVM 设计,在手动场景测试期间,我设法在 XML 文件中记录了所有命令和视图事件(抛出视图模型,如选定的对象、显示的对象 ID,...) . 然后重放记录的场景就很容易了:)

它运行良好,可以快速检查我的大部分代码 - 我为它感到自豪,对 .Net 感到非常兴奋! ;o)

但是,我如何检查我的代码覆盖率?

在这种情况下我没有使用单元测试,只是 运行 处于调试模式的应用程序 但我想知道哪个代码是 tested/untested。

有什么想法吗?

谢谢, 钕

如果您想对实时测试执行代码覆盖,即不是一组单元测试,那么您可以创建一个实际启动实时代码的单元测试(例如调用 main 或您的程序运行起来),执行你的测试场景,然后结束程序。到那时,单元测试框架(我建议使用 Haukinger 所说的 dotCover)会看到测试已经结束,并且它会为您获取代码覆盖率信息。

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

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

感谢 snehal harawande 关于免费场景测试的精彩文章。我确实使用了 .Net 4.5.2 64 位(在第一个批处理行参数上添加 "x64")并且我确实在 VS Enterprise 中导入了结果。太完美了:)

谢谢大家

添加对 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 的内置测试运行器和代码覆盖检测:使用 "Test/Analyze Code Coverage/All Tests" 代替 "Debug/Start Debugging"。 (不过,控制台测试运行器 vstest.console.exe 不起作用。)