我创建了一个控制台应用程序,该应用程序旨在完全自我依赖并包含要运行的所有必需的DLL。我能够做到这一点并让它在本地运行,但当复制到另一台计算机时,我开始收到这条消息......
“没有注册测试发现者来执行测试用例的发现。注册测试发现者并重试。”
我发现了这个Microsoft错误报告,但由于无法重现而被关闭: https://connect.microsoft.com/VisualStudio/feedback/details/770093/unit-test-project-not-discovering-test-cases
答案 0 :(得分:4)
我不想坐在那里等待微软说他们无法重现所以我挖到它并发现我收到此错误消息的原因是因为我错过了DLL文件“Microsoft .VisualStudio.QualityTools.UnitTestFramework.dll“即可。
这是包含测试发现者的文件,它需要位于运行测试的可执行文件的目录以及测试文件本身的目录中。很容易错过,因为运行测试的程序集似乎完全包含在“Microsoft.VisualStudio.TestPlatform”命名空间中,并且测试似乎只需要引用“Microsoft。 VisualStudio.TestTools.UnitTesting“即可。
我决定发布这个“知识共享”帖子,因为互联网上没有关于这个问题的其他信息,微软的MSTest框架文档充其量是坏的。
答案 1 :(得分:0)
刚刚遇到这个问题的一些单元测试最初用.Net 3.5编写并在vs 2013中运行(或不运行)。
Love2Learn提到的UnitTestFramework.dll存在但是更新到.Net 4.5似乎解决了这个问题。
我确信有人可以解释原因,但我的直觉是这与多平台解决方案有关,而.Net 4.5更适合对64位项目运行32位单元测试。