2011-08-18 140 views
5

我正在使用Visual Studio 2010并创建了一堆单元测试。测试项目在测试的项目中找不到对象

下面是一个例子:

[TestMethod()] 
    [HostType("ASP.NET")] 
    [AspNetDevelopmentServerHost("C:\\Users\\Employee\\Documents\\Code Spaces\\shopvote2\\trunk\\Web", "/Web")] 
    [UrlToTest("http://localhost/Web")] 
    public void GetUserDetailsTest() 
    { 
     api_Accessor target = new api_Accessor(); // TODO: Initialize to an appropriate value 
     string username = string.Empty; // TODO: Initialize to an appropriate value 
     string passhash = string.Empty; // TODO: Initialize to an appropriate value 
     int requestID = 0; // TODO: Initialize to an appropriate value 
     ShoppingRequestDetailsData[] expected = null; // TODO: Initialize to an appropriate value 
     ShoppingRequestDetailsData[] actual; 
     actual = target.GetUserDetails(username, passhash, requestID); 
     Assert.AreEqual(expected, actual); 
     Assert.Inconclusive("Verify the correctness of this test method."); 
    } 

的问题是,它说:

类型或命名空间名称“ShoppingRequestDetailsData”找不到(是否缺少using指令或程序集引用?)

无法隐式转换类型 'ShoppingWithFriends.ShoppingRequestDetailsData []' 到 'ShoppingRequestDetailsData []'

它从中获取名称空间,并且可以运行不需要自定义类的测试。只有这些导致我的问题。

任何想法?

谢谢。

+0

是'ShoppingRequestDetailsData'公众? –

+0

是的,那个班级是公开的,所以我所有的班级都试图访问 – apexdodge

+0

“你是否缺少使用指令或程序集引用?” – svick

回答

5

检查有几件事情:

首先,我会仔细检查项目中的参考 - 它是一个项目引用或程序集引用?如果它是一个程序集引用,你确定它指向了正确的文件版本吗? (例如,如果您重命名目录,可能是指向旧目录)。可以肯定的是,使用像Reflector这样的工具直接检查程序集并确保类型在正确的名称空间中。

其次,我不知道如果这是你的问题,但我也有类似的问题,即虽然有在同一个解决方案项目引用一个命名空间甚至没有被发现,类型为市民等。

事实证明,我需要将“目标框架”更改为“.NET Framework 4”,而不是“.NET Framework 4客户端配置文件”。我没有想到为什么会导致“未知的命名空间”错误,但它解决了我的问题。

只是一对夫妇的事情来检查,希望它可以帮助...

约翰

+0

你救了我的一天....(y)谢谢 – KoolKabin