我最近一直在构建一个C#的测试框架,我一直在努力.我在我的工作区中设置了NUnit和一个新项目来测试组件.如果我从Nunit(v2.4)加载我的单元测试,一切运行良好,但我已经达到了在调试模式下运行并设置一些断点非常有用的地步.
我已经尝试了几个指南中的建议,这些指南都建议更改测试项目的"Debug"属性:
Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe
Command line arguments: /assembly: <full-path-to-solution>\TestDSP\bin\Debug\TestDSP.dll
Run Code Online (Sandbox Code Playgroud)
我在那里使用控制台版本,但也试过调用GUI.当我尝试开始调试时,两者都给出了同样的错误:
Cannot start test project 'TestDSP' because the project does not contain any tests.
Run Code Online (Sandbox Code Playgroud)
这是因为我通常将\ DSP.nunit加载到Nunit GUI中并且这是测试所在的位置吗?
我开始认为问题可能是VS想要运行它自己的测试框架,这就是为什么它没能找到NUnit测试?
编辑:对于那些询问测试装置的人,TestDSP项目中的一个.cs文件看起来大致如下:
namespace Some.TestNamespace
{
// Testing framework includes
using NUnit.Framework;
[TestFixture]
public class FirFilterTest
{
[Test]
public void Test01_ConstructorTest()
{
...some tests...
}
}
}
Run Code Online (Sandbox Code Playgroud)
...我对C#和NUnit测试框架都很陌生,所以我完全有可能错过了一些关键的信息;-)
最终解决方案:最大的问题是我使用过的项目.如果您选择Other Languages -> Visual C# -> Test -> Test Project...当您选择项目类型时,Visual Studio将尝试使用它自己的测试框架,据我所知.您应该选择一个正常的 C#类库项目,然后我选择的答案中的说明将起作用.
我很便宜并且不想为ReSharper或TestDriven.NET付费,NUnit有免费的Visual Studio插件吗?
我刚刚将以前在VS2008中运行的解决方案升级.NET 3.5到VS2015上运行.NET 4.6.
有关该项目的一些信息
Unit Test Project只是创建'AVTest.dll`,我们将其加载到NUnit中以对某些硬件执行某些功能测试.所有东西都构建并正确运行但是在尝试设置断点时出现以下错误:
断点当前不会被击中.没有为此文档加载任何符号.
当我切换回.NET 3.5时,我能够在代码中设置断点.我能做到这一点的事实让我觉得我缺少一些关于.NET版本的简单,因为我不太熟悉c#.
我知道这个问题,并尝试了问题本身和答案第一页的所有内容.
关于如何检查没有加载符号的原因是否有任何进展?
当我附加到已经运行的Nunit测试时,我能够正常调试.我不确定它为什么在运行后(通过启动外部程序)或者为什么在3.5而不是4.6中工作,但它可以被调试...