我最近一直在构建一个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#类库项目,然后我选择的答案中的说明将起作用.
我正在尝试将Visual Studio 2010 beta dll加载到NUnit GUI中.我收到弹出错误.
此程序集由比当前加载的运行时更新的运行时构建,无法加载.您可能正在尝试使用比当前运行NUnit的版本更高版本的CLR加载程序集版本.
如何强制可执行文件在.NET 4下运行?
我正在尝试使用NuGet管理器在Visual Studio 2012 Express中设置简单的NUnit项目.从PROJECT->管理NuGet包我安装了NUnit(框架)并想要添加NUnit.Runner但是在安装过程中我收到了:
'NUnit.Runners 2.6.2' already installed.
Run Code Online (Sandbox Code Playgroud)
好的,但是当我转到TOOLS-> Library Package Manager-> Manage for NuGet Packages for Solution时,NUnit(框架)和NUnit.Runners都会显示为已安装.
我可以在代码中使用NUnit框架,但是当我尝试运行测试时,旧的"测试资源管理器"会停留并且不会显示任何内容.不会调用测试.
我在VS2012或NUnit配置中遗漏了什么?
我刚刚从NUnit 2.5.2"升级"到NUnit 2.5.7,这样我就可以针对用.Net Framework 4构建的DLL运行单元测试.我通过"StartExternalProgram"长时间使用2.5.2 "项目属性下的财产.在那种情况下,我从来没有必要显式调试附加到NUnit进程.
现在在2.5.7下,似乎必须显式附加到NUnit_Agent进程才能调试被测代码.
当然这意味着我不需要两次点击来运行我的单元测试,而是现在必须单击VS2010中的Debug.Run图标,等待NUnit GUI出现,alt-Tab返回VS2010,单击Debug.Attach ..,向下滚动找到NUnit Agent的列表,双击选择它,alt-Tab返回NUnit GUI,单击Run运行测试.
那么,是否有理由在2.5.7下使用NUnit变得更加困难或者球被丢弃了?
提前感谢有关从早期版本恢复"自动附加"的任何建议.