2014-01-09 68 views
1

我找不到NUnit類的Spring.Net上下文文件。我的問題是我在哪裏放置Spring.Net上下文文件,以便可以通過NUnit測試找到它?我使用Spring.Net 1.3.2(這是NuGet默認的版本)和Spring.Net與NUnit的集成。單元測試沒有找到通過AbstractDependencyInjectionSpringContextTests指定的上下文文件。使用程序集的文件位置://資源

這是我的第一個.Net項目項目,所以我可能會缺少一些基本的東西。在我的解決方案中,我的主要C#項目將具有MyAssembly的程序集/項目名稱。然後我在同一個解決方案中創建了一個名爲MyAssemply.Test的測試項目。最初,我在項目的根目錄下創建了我的單元測試類和它的上下文文件。上下文文件被標記爲嵌入式資源並且不復制。資源URI是「程序集://MyAssembly.Test/MyNamespace/EmailManagerTestContext.xml」。我不斷收到一個空指針。

所以我嘗試使用AssemblyResource類而不擴展Spring.Net AbstractDependencyInjectionSpringContextTests類。這也是空的,並沒有告訴我期待文件的位置。我也使用Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),發現該項目正在建立在另一個驅動器上的臨時目錄中。我嘗試將類和上下文XML文件移動到與命名空間名稱相同的文件夾中,但這不起作用。我已經看到了一些例子,其中目錄結構與Java包不同,因此我有點困惑。感謝您的任何幫助。

+0

很難說什麼是您的實際問題。有一件事:臨時位置可能來自NUnit設置,以「複製」測試程序集。另外:我不確定嵌入式資源的事情。也許這有助於:http://stackoverflow.com/questions/3314140/how-to-read-embedded-resource-text-file –

+0

你可以添加你的配置文件? – Najera

回答

0

要設置NUnit的使用Spring.Net你將需要:

  1. 設置你的開發環境:安裝NUnit測試適配器。

  2. 設置您的項目:添加一個nunit參考和Spring.Net Nunit參考。

  3. 您的測試必須來自AbstractDependencyInjectionSpringContextTests類。

  4. 使用Embedded Resource路徑實現ConfigLocations屬性。確保這條路徑是不能配置的最常見的錯誤因素。

`

string resourcePath = string.Format("assembly://{0}/{1}/{2}.xml" 
, currentType.Assembly.GetName().Name 
, currentType.Namespace 
, currentType.Name); 

`

  • 在構造類,你可以選擇自動裝配塞汀的AutowireMode屬性。
  • this.AutowireMode = Spring.Objects.Factory.Config.AutoWiringMode.ByName;this.DependencyCheck = true;

    `

    namespace Spring.Objects.Factory.Config 
    { 
        // Summary: 
        //  The various autowiring modes. 
        [Serializable] 
        public enum AutoWiringMode 
        { 
         // Summary: 
         //  Do not autowire. 
         No = 0, 
         // 
         // Summary: 
         //  Autowire by name. 
         ByName = 1, 
         // 
         // Summary: 
         //  Autowire by System.Type. 
         ByType = 2, 
         // 
         // Summary: 
         //  Autowiring by constructor. 
         Constructor = 3, 
         // 
         // Summary: 
         //  The autowiring strategy is to be determined by introspection of the object's 
         //  System.Type. 
         AutoDetect = 4, 
        } 
    } 
    

    `

  • 我使用綽號。它表示Spring.Net XML上的已定義對象的名稱必須與我的屬性名稱完全匹配。爲了使配置更容易,請使用別名在測試中重用您的本機配置。
  • 問候

    相關問題