我编写了一个测试方法来测试我的一个主要项目方法。在我的测试项目中,我引用了我的主项目。但是因为我在我的测试项目中使用了它的一些类,所以Visual Studio告诉我们:
“XYZ”类型在未引用的程序集中定义。您 必须添加对程序集'XYZ,version = 1.0.0.0的引用, Culture = neutral,PublicKeyToken = null'。
所以,我想我的问题是,为什么当我们已经添加了对我们主项目的引用时,我们是否还需要在测试项目中单独添加它引用的所有库?
答案 0 :(得分:0)
不幸的是,是的。
添加NuGet包" Microsoft.AspNet.Mvc"到您的单元测试项目:
https://www.nuget.org/packages/Microsoft.AspNet.Mvc/
如果您删除该包,则会再次收到错误。
此操作可以通过以下三个步骤修复我可以重现的情况:
并验证packages.config是否包含:
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" />
2)创建单元测试项目:
并添加以下测试:
[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