2016-05-11 8 views
2

Я столкнулся с этим вопросом, прежде чем при использовании NUnit с F #:NUnit тесты не из DLL вопроса загрузки в F # библиотеки

Не удалось загрузить файл или сборку «nunit.framework, Version = 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

Из любопытства, почему вы используете NUnit 2.x вместо 3.x? Я переключил несколько месяцев назад на 3.x, и теперь, когда я приспособился к изменениям, я доволен. –

+0

Он не отображается в тестовом проводнике. –

+0

Я могу использовать NUnit 3.x с VS 2015 Community/Test Explorer. У меня есть [NUnit3 Test Adapter] (https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d). Может быть, вы должны задать новый вопрос SO. Я не знаю ответа, если вы установили тестовый адаптер NUnit3. Примечание. Существуют различные адаптеры для тестирования NUnit. Один для 2.x и один для 3.x –

ответ

8

Это, скорее всего, потому что FsUnit ссылки старая версия nunit.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, так что выше может просто работать для вас - но если нет, то проверьте, что ваша версия nunit.framework.dll с помощью инструмента ILSpy. У меня 2.6.4.14350, но у вас может быть другое.

+0

Мне также пришлось понизить версию FSharp.Core до 3.1.25 –