我最近安装了 Visual Studio 2013,CodeLens 真是太棒了!我发现的问题是,每当我打开一个包含方法的类文件时,如果它不是用 MSTest 编写的,它似乎找不到与该方法关联的单元测试。我必须做些什么才能找到其他单元测试,如 MSpec?
是因为 Machine Specifications 在创建单元测试与 MSTest 或其他测试框架时有不同的方法吗?
我最近安装了 Visual Studio 2013,CodeLens 真是太棒了!我发现的问题是,每当我打开一个包含方法的类文件时,如果它不是用 MSTest 编写的,它似乎找不到与该方法关联的单元测试。我必须做些什么才能找到其他单元测试,如 MSpec?
是因为 Machine Specifications 在创建单元测试与 MSTest 或其他测试框架时有不同的方法吗?
测试者和测试状态指示器由测试资源管理器提供支持。
因此,如果您的 MSpec 测试出现在测试资源管理器中并且是用 C# 或 VB 编写的,那么它们也应该出现在 CodeLens 中。
(与带有 NUnit 的 Visual Studio 2013 功能代码镜头相同的答案)
通过在扩展管理器中安装 Nunit 和 Nunit 扩展,我只是在干净的机器上使用 NUnit 完成了它。这里Main
显示一个参考和一个通过测试,并且测试本身在成功运行后显示复选标记。
我做了约翰·加德纳在他的回答中展示的同样的事情,除了我把它分成 2 个项目(模仿我在实际解决方案中使用的设置)。起初它没有工作,即使我可以在测试资源管理器中看到测试。经过一番搜索,我偶然发现了适合我情况的正确答案。
事实证明,您需要:
(1)新建单元测试项目(不是类库)
(2)在Unit Test项目中添加NUnit引用(我用的是NuGet)并在VS2013中安装了NUnit Test Adapter
(3) 将您的测试移至这个新项目
(4) 保存并构建后,现在您可以返回到您的生产代码并查看“x/y 通过”消息并在“测试资源管理器”窗口中查看单元测试。
我们大多数使用 NUnit 很长时间的人都习惯于为我们的代码创建类库而不是单元测试项目。如果 CodeLens 文档实际上直接涵盖了这一点,那就太好了(文档指出“测试状态指示器会自动出现在测试项目中”,这是我的线索)。