2016-05-11 15 views
2

私はこの問題に遭遇してきたのF#でNUnitのを使用した場合の前にいるためのF#ライブラリ内のDLLの読み込みに関する問題の失敗:NUnitのテストは

は、ファイルまたはアセンブリ「nunit.frameworkをロードできませんでした、バージョン= 2.6.3.13283

私はFSharp.Coreのバージョンをより低いバージョン番号にダウングレードしました。 私のテストを例外なく実行するために必要なことがわかりません。

コード

module Foo 

open NUnit.Framework 
open FsUnit 

[<Test>] 
let ``some test``() = 
    1 |> should equal 1 

Packages.config

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="FSharp.Core" version="4.0.0.1" targetFramework="net46" /> 
    <package id="FsUnit" version="1.4.1.0" targetFramework="net46" /> 
    <package id="NUnit" version="2.6.4" targetFramework="net46" /> 
    <package id="NUnitTestAdapter" version="2.0.0" targetFramework="net46" /> 
    <package id="xunit" version="2.1.0" targetFramework="net46" /> 
    <package id="xunit.abstractions" version="2.0.0" targetFramework="net46" /> 
    <package id="xunit.assert" version="2.1.0" targetFramework="net46" /> 
    <package id="xunit.core" version="2.1.0" targetFramework="net46" /> 
    <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net46" /> 
    <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net46" /> 
    <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net46" /> 
</packages> 
+0

なぜ、3.xの代わりにNUnit 2.xを使用していますか?私は数ヶ月前に3.xに切り替えましたが、今は私が満足している変更に調整しました。 –

+0

テストエクスプローラに表示されません。 –

+0

私はVS 2015コミュニティ/テストエクスプローラでNUnit 3.xを使用することができます。私は[NUnit3 Test Adapter](https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d)をインストールしています。たぶん新しいSOの質問をする必要があります。あなたがNUnit3テストアダプタをインストールした場合、私は答えを知らない。注意:NUnitテストアダプタはさまざまです。 2.x用と3.x用 –

答えて

8

FsUnitnunit.framework(2.6.3)の古いバージョンを参照していますが、あなたのapplcationがに対してコンパイルされているため、これが最も可能性が高いです新しいバージョンのNUnit(2.6.4)です。

これを解決する方法は、テストプロジェクトにapp.configを追加することです。これによりNUnitのすべてのバージョンが、プロジェクトで参照しているバージョンにマップされます。このような何か:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="nunit.framework" 
      publicKeyToken="96d09a1eb7f44a77" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-9999.9999.9999.9999" 
      newVersion="2.6.4.14350" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

私はone project recentlyで正確に同じ問題を解決したので、上記のあなたのためだけに働くかもしれない - しかし、ノーならば、ILSpyのようなツールを使用してnunit.framework.dllのバージョンであるかどうか確認します。私は2.6.4.14350を持っていますが、あなたは別のものを持っているかもしれません。

+0

私はFSharp.Coreのバージョンも3.1.25に下げる必要がありました –

関連する問題