2010-06-09 18 views
7

使用上下文菜單生成的Visual Studio 2010在一個新的單元測試時,我得到這個錯誤(右鍵單擊方法名稱 - >「生成單元測試」):的方法私人訪問者沒有找到

Private Accessor for methodName is not found. Please rebuild the containing project or run the Publicize.exe manually. 

的方法是公開的(檢查,通過應用應用過濾器不顯示在「生成單元測試」對話框非公共方法。

Visual Studio創建某種自動.accessor的文件。我需要做任何事情吧?

還有什麼可以的pr oblem?

編輯(更可能是相關的信息)

  • 我想測試一個網站項目中一些類,雖然他們沒有做任何網頁相關的東西。他們只是普通的舊C#類。
  • 我的所有類名在單元測試類中都可用作ClassName_Accessor。這會導致編譯器抱怨方法簽名不正確。

回答

0

「訪問器」是一種類似於您的測試中涉及的類之一的類,但測試方法可以訪問其私有的和受保護的方法和字段。特別是,訪問器類用於測試私有和受保護的方法。

聽起來好像存在訪問者的問題,所以你可能想嘗試擦除並重新創建它。重建項目。然後,右鍵單擊代碼並在「創建單元測試」旁邊,應該有另一個選項「創建私有訪問器」。

+0

我已經做了「創建私人配件」的東西,它並沒有改變一件事。我不應該這樣做,因爲所有的類和方法都是公開的。 此外,請檢查我的編輯,我猜測我只能訪問類名稱ClassName_Accessor可能與問題有關。 – Farinha 2010-06-09 18:43:31

+0

這很奇怪。恐怕我可能沒有服務,那麼......如果你在測試代碼中沒有調用非公開的方法,我不知道你會有什麼問題。測試項目是否完全創建,還是錯誤阻止了它? – 2010-06-09 18:47:56

5

我解決了我的問題,在TFS合併過程中,我解除了與測試參考文件文件夾的關聯。

測試參考文件文件夾位於您的測試項目中,並且將包含一個以源名稱空間命名並附加了「.accessor」的文件。由於我已將文件夾與項目分離,因此我沒有看到該文件仍然存在,因此我突出顯示了測試項目並在解決方案資源管理器中按下了「顯示所有文件」按鈕。當我最終找到該文件時,我將其刪除並重新生成了私人訪問者(在您的班級中右鍵單擊並選擇「生成私人訪問者」)。

因此,如果測試引用存在但與項目無關,您將無法重新生成專用訪問器,並且Visual Studio不會告訴您存在文件命名/鎖定衝突。