我想使用NUnit在我的插件中运行单元测试,但需要在我的应用程序上下文中运行。为了解决这个问题,我尝试开发一个运行NUnit的插件,它将在应用程序的上下文中执行我的测试。
我没有找到关于这个主题的具体文档,所以我四处搜寻一些信息,然后我得到了以下代码片段(类似于我在StackOverflow上找到的一个):
public static void Main()
{
SimpleTestRunner runner = new SimpleTestRunner();
TestPackage package = new TestPackage( "Test" );
string loc = Assembly.GetExecutingAssembly().Location
package.Assemblies.Add( loc );
if( runner.Load(package) )
{
TestResult result = runner.Run( new NullListener() );
}
}
结果变量显示“没有 TestFixture”,尽管我确定它在那里。事实上,我的测试文件包含两个测试。
使用另一种方法,我发现可以总结为以下代码:
TestSuiteBuilder builder = new TestSuiteBuilder();
TestSuite testSuite = builder.Build( package );
// Run tests
TestResult result = testSuite.Run( new NullListener(), NUnit.Core.TestFilter.Empty );
我看到只有一个测试的nunit数据结构,我也遇到了同样的错误。
为了完整起见,我正在使用最新版本的nunit,即2.5.5.10112。
有人知道我缺少什么吗? 如果提供示例代码将不胜感激。 我的测试类是:
[TestFixture]
public class UnitTests
{
public UnitTests()
{
}
[Test]
public void TestEqual()
{
long a = 10;
long b = 10;
Assert.AreEqual( a, b );
}
[Test]
public void TestNotEqual()
{
long a = 10;
long b = 11;
Assert.AreNotEqual( a, b );
}
}