NUnit 测试无法识别我创建的 class - "The type or namespace name could not be found"
NUnit test does not recognize a class that I created - "The type or namespace name could not be found"
我正在设置基本的 NUnit 测试项目来测试 STACK 对象。我创建了 MyStack
class 和 TestClass
。 TestClass
找不到对我创建的 MyStack
class 的引用。
The type or namespace name 'MyStack' could not be found (are you missing a using directive or an assembly reference?
我正在使用 NUnit 和 NUnit3TestAdapter。我已将包含 MyStack
的项目添加到测试项目的引用中。
测试类
using NUnit.Framework;
namespace NUnit.TDDStackTests
{
[TestFixture]
public class TestClass
{
[Test]
public void TestMethod()
{
MyStack stack = new MyStack();
}
}
}
我的堆栈
namespace TDDStack
{
class MyStack
{
}
}
我看到两个可能的问题。首先是 MyStack
class 是 private
。如果 class
关键字之前没有其他修饰符,C# 默认 non-nested 类型为 private
,嵌套类型为 internal
.
尝试将 public
关键字添加到您的 MyStack
class 定义中:
public class MyStack
其次,MyStack
在 TDDStack
命名空间中,但您试图在 NUnit.TDDStackTests
命名空间的 class 中创建它的实例。要解决此问题,您可以在单元测试中为命名空间添加 using
语句:
using NUnit.Framework;
using TDDStack; // Add this
namespace NUnit.TDDStackTests
{
[TestFixture]
public class TestClass
// etc ...
或者您可以在 MyStack
的每个用法前加上包含它的命名空间:
var stack = new TDDStack.MyStack();
如果class在单独的项目中,您还需要在要使用它的项目(单元测试项目)中添加对包含MyStack
的项目的引用.
我正在设置基本的 NUnit 测试项目来测试 STACK 对象。我创建了 MyStack
class 和 TestClass
。 TestClass
找不到对我创建的 MyStack
class 的引用。
The type or namespace name 'MyStack' could not be found (are you missing a using directive or an assembly reference?
我正在使用 NUnit 和 NUnit3TestAdapter。我已将包含 MyStack
的项目添加到测试项目的引用中。
测试类
using NUnit.Framework;
namespace NUnit.TDDStackTests
{
[TestFixture]
public class TestClass
{
[Test]
public void TestMethod()
{
MyStack stack = new MyStack();
}
}
}
我的堆栈
namespace TDDStack
{
class MyStack
{
}
}
我看到两个可能的问题。首先是 MyStack
class 是 private
。如果 class
关键字之前没有其他修饰符,C# 默认 non-nested 类型为 private
,嵌套类型为 internal
.
尝试将 public
关键字添加到您的 MyStack
class 定义中:
public class MyStack
其次,MyStack
在 TDDStack
命名空间中,但您试图在 NUnit.TDDStackTests
命名空间的 class 中创建它的实例。要解决此问题,您可以在单元测试中为命名空间添加 using
语句:
using NUnit.Framework;
using TDDStack; // Add this
namespace NUnit.TDDStackTests
{
[TestFixture]
public class TestClass
// etc ...
或者您可以在 MyStack
的每个用法前加上包含它的命名空间:
var stack = new TDDStack.MyStack();
如果class在单独的项目中,您还需要在要使用它的项目(单元测试项目)中添加对包含MyStack
的项目的引用.