2011-08-18 190 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