即使主项目被引用,测试项目也要求从主项目添加引用

时间:2017-11-22 09:13:20

标签: c# visual-studio unit-testing

我编写了一个测试方法来测试我的一个主要项目方法。在我的测试项目中,我引用了我的主项目。但是因为我在我的测试项目中使用了它的一些类,所以Visual Studio告诉我们:

  

“XYZ”类型在未引用的程序集中定义。您   必须添加对程序集'XYZ,version = 1.0.0.0的引用,   Culture = neutral,PublicKeyToken = null'。

enter image description here

所以,我想我的问题是,为什么当我们已经添加了对我们主项目的引用时,我们是否还需要在测试项目中单独添加它引用的所有库?

1 个答案:

答案 0 :(得分:0)

不幸的是,是的。

添加NuGet包" Microsoft.AspNet.Mvc"到您的单元测试项目:

enter image description here

https://www.nuget.org/packages/Microsoft.AspNet.Mvc/

如果您删除该包,则会再次收到错误。

此操作可以通过以下三个步骤修复我可以重现的情况:

1)创建ASP.Net Web应用程序:enter image description here

并验证packages.config是否包含:

<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" />

2)创建单元测试项目:

enter image description here

并添加以下测试:

[TestMethod]
public void TestMethod1()
{
    var controller = new HomeController();
    var target = controller.Index();
}

3)编译后我收到此错误:

  

类型&#39; ActionResult&#39;在一个不是的程序集中定义   引用。您必须添加对程序集&System; Web.Mvc的引用,   Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35&#39;。   UnitTestProject1 UnitTest1.cs