2016-10-04 71 views
1

在asp.net核心的單元測試我有一個非常簡單的單元測試。當我運行測試時,我得到了異常無法加載文件或程序集'無法加載文件或程序集'System.Core,版本= 4.0.0.0 ..'此錯誤開始出現後,我添加「Microsoft.NETCore.Portable。兼容性「:」1.0.1「在我的Project.json文件中。但它是必需的,否則我不能在單元測試中使用lambda表達式。獲取無法加載文件或程序集「System.Core,版本= 4.0.0.0 ..」在做與moq

在我的單元測試中沒有編譯時錯誤。我確定沒有錯,我的測試是project.json文件丟失了一些東西。以下是我的測試。

Mock<RegistrationManager> manager = new Mock<RegistrationManager>(); 
      Mock<RegistrationModel> model = new Mock<RegistrationModel>(); 
      var value = manager.Setup(a => a.GetDataFieldValuesForModel(model.Object, CommandType.next)).ReturnsAsync(new RegistrationModel { hasError = false, FormId="123",LeadId="345" }); 


{ 
    "version": "0.1.0-*", 
    "dependencies": { 
    "Moq": "4.5.22", 
    "xunit": "2.2.0-beta2-build3300", 
    "dotnet-test-xunit": "2.2.0-preview2-build1029", 
    "IntegraPay.Domain": { 
     "version": "1.0.0-*", 
     "target": "project" 
    }, 
    "Integrapay.RegistrationApplication": { 
     "version": "", 
     "target": "project" 
    }, 
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "net451" 
     ], 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0" 
     } 
     } 
    } 
    }, 
    "testRunner": "xunit" 
} 
+1

我記得當我用來獲取確切的錯誤,只有這樣我可以修復它,如果我啓動VS(我的IDE)具有管理員權限。 – Rook

+0

它仍然失敗。 – maxspan

+0

不吉利;這是一個非常普遍的錯誤,會加載不同的變量來影響問題......您可以嘗試將您的代碼的一小部分移動到一個全新的項目,並具有所需的所有依賴關係,然後再試一次? – Rook

回答

0

有同樣的問題。

幾個變化解決了這個問題:

    從起訂量來Moq.netcore
  1. 更改依賴(你還需要添加自定義的NuGet飼料 「https://www.myget.org/F/aspnet-contrib/api/v3/index.json」,發現它在http://dotnetliberty.com/index.php/2016/02/22/moq-on-net-core/
  2. 刪除進口dnx451(net451你的情況),這個答案對我幫助很大:https://stackoverflow.com/a/39856247/1546582
  3. 刪除鏈接兼容性項目(你不moq.netcore需要它)
  4. 添加參考System.Diagnostics.TraceSource(因爲它是不參考enced,但需要出於某種原因)

我最後project.json樣子:

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "NUnit": "3.5.0", 
    "dotnet-test-nunit": "3.4.0-beta-2", 
    "MyTestingProject": "1.0.0-*", 
    "Moq.netcore": "4.4.0-beta8", 
    "System.Diagnostics.TraceSource": "4.0.0" 
    }, 
    "testRunner": "nunit", 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "netcoreapp1.0", 
     "dnxcore50" 
     ], 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.1", 
      "type": "platform" 
     } 
     } 
    } 
    } 
} 
相關問題