【问题标题】:Problem setting up VS2019 Community for unit testing a dll设置 VS2019 社区以对 dll 进行单元测试时出现问题
【发布时间】:2020-03-23 22:37:30
【问题描述】:

我正在使用 vs 2019 社区并创建了一个名为 TestDLL 的类库 (.NET Framework) 项目。

该项目包含一个文件“TestDLL.cs”,其中包含作为命名空间的 TestDLL、一个名为 MyDll 的公共类和一个方法

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace TestDLL 
{ 
    public class MyDLL 
    { 
        static bool Opposite(bool input) 
        { 
            return !input; 
        } 
    }
}

在解决方案中,我添加了名为 UnitTest 的单元测试项目 (.NET Framework),添加了 TinyLib_dll.dll 作为参考,并创建了非常简单的测试。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTest
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            bool start = true;
            bool result = MyDLL.Opposite(start);
            Assert.AreNotEqual(start, result, "MyDll.Opposite failed");
        }
    }
}

当我尝试运行测试时,dll 文件编译成功,但 UnitTest 失败并显示“错误 CS0103 The name 'MyDLL' does not exist in the current context UnitTest”。

看起来虽然我引用了 dll 作为参考,但它并没有被加载到测试项目中。 有人可以帮帮我吗?

【问题讨论】:

    标签: c# unit-testing dll


    【解决方案1】:

    您似乎在测试中缺少 TestDLL 命名空间,以便测试识别主题类

    添加 using 命名空间

    using TestDLL;
    
    //...
    

    或使用类型的全名

    //...
    
    bool result = TestDLL.MyDLL.Opposite(start);
    
    //...
    

    【讨论】:

    • 很好的建议,我确实忘记将 using TestDLL 添加到我的简单示例中,但添加它只会将错误移动到 using 语句。此外,使用 bool result = TestDLL.MyDLL.Opposite(start);将错误指示器移动到 TestDLL。看来测试项目根本看不到正在测试的项目。
    • @John 更新您的帖子以显示要测试的所有实际类,包括文件中出现的命名空间。
    • 我希望这会有所帮助。
    • 更新原帖不成功,这里是要测试的文件。//Class1.cs using System;使用 System.Collections.Generic;使用 System.Linq;使用 System.Text;使用 System.Threading.Tasks;命名空间 TestDLL { public class MyDLL { static bool Opposite(bool input) { return !input; } } }
    • @John 在您发布的最后一个代码 sn-p 中,静态方法不公开。
    【解决方案2】:

    为了解决我的问题,我匆忙提交了带有简单编译错误的代码示例。纠正这些错误解决了我所说的问题。但是,我现在对同一个项目有一个新问题,但为了清楚起见,我将提交一个新问题。我感谢 Nkosi 的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多