在NUnit中构建和加载文件
我正在看一本书,名叫《单元测试的艺术》。我已经到了需要测试我使用NUNit编写的测试方法的地步。作者指示生成项目,然后找到生成的程序集文件的路径,并为NUnit提供测试路径 我的问题是,我似乎无法获取此程序集文件路径。它在哪里 另外,当我运行代码时,会出现以下错误:在NUnit中构建和加载文件,nunit,Nunit,我正在看一本书,名叫《单元测试的艺术》。我已经到了需要测试我使用NUNit编写的测试方法的地步。作者指示生成项目,然后找到生成的程序集文件的路径,并为NUnit提供测试路径 我的问题是,我似乎无法获取此程序集文件路径。它在哪里 另外,当我运行代码时,会出现以下错误: Error 2 Program 'c:\Users\Documents\Visual Studio 2012\Projects\Loganalyzer\Loganalyzer\obj\Debug\Loganalyze
Error 2 Program 'c:\Users\Documents\Visual Studio 2012\Projects\Loganalyzer\Loganalyzer\obj\Debug\Loganalyzer.exe' does not contain a static 'Main' method suitable for an entry point c:\users\documents\visual studio 2012\Projects\Loganalyzer\Loganalyzer\CSC Loganalyzer
这是我的密码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Loganalyzer
{
public class LogAnalyzer
{
public bool IsValidLogFileName(string fileName)
{
if (!fileName.EndsWith(".SLF"))
{
return false;
}
return true;
}
}
}
我正在遵循书中的确切示例,但无法使其如您所见发挥作用。我会感谢你们的帮助
using Loganalyzer;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LogAnalyzerTest
{
[TestFixture]
class LogAnalyzerTest
{
[Test]
public void IsValidFileName_validFile_ReturnsTrue()
{
//Arrange ( Arranges objects, creating and setting them up as necessary).
LogAnalyzer analyzer = new LogAnalyzer();
//Act
bool result = analyzer.IsValidLogFileName("whatever.SLF");
//Assert ( Asserts that something is as expected)
Assert.IsTrue(result, "file name should be valid");
}
}
}
似乎您正在尝试运行类项目Loganalyzer,但您可能希望使用某种测试运行程序。我更喜欢TestDriven.net。NUnit只是一个测试框架(非常简单,它指定了如何设置测试的规则,等等) 您需要的是一些应用程序或插件来实际运行它们。例如,您可以在中运行测试,或者在NUnit附带的中运行测试,或者在testdrive.net中运行测试(我听说这非常好) 就我个人而言,我使用的是随附的跑步者(尽管它只免费试用一个月左右)
关键是你没有一个可执行的项目,而是一个类库,包含了要测试的东西。运行程序运行您的测试,然后调用您的代码。如果您想使用本机nunit运行程序,您通常会使用这样的类
static class NUnitLauncher
{
[STAThread]
static void Main()
{
AppEntry.Main(new[] { Assembly.GetExecutingAssembly().Location });
}
}
您还必须将其设置为启动对象(在项目的属性中)
您还需要参考nunit-gui-runner.dll,可以在nunit安装目录(通常是程序文件)中找到它。我的在
C:\Program Files (x86)\NUnit 2.5.7\bin\net-2.0\lib
原生nunit运行程序有它的问题,但我发现resharper(6.1)测试运行程序在调试时是不稳定的——它有时会随机崩溃。它也不了解nunit中所有不同类型的参数化测试。希望在新版本中不是这样,它有更好的用户界面
你上面描述的问题是两个不同的东西——一个听起来像是因为你没有一个启动对象集;另一个听起来像是混淆了什么是程序集。编译时生成的可执行文件将包含一个程序集-如果您将nunit指向该程序集,那么它应该可以工作(假设其中包含一些nunit内容(例如用[Test]等标记的内容))您可以发布您的测试夹具/类吗。@ChrisMissal,我已经发布了我的测试类。我将感谢你的帮助,因为从昨天起我一直没有取得任何进展。