Почему я не могу использовать последнюю версию NUnit и FsCheck с F#?

Я хотел бы использовать последние версии NUnit, FsCheck и F#. Однако, когда я указываю на последние версии своих пакетов, мои модульные тесты не обнаруживаются.

Однако мои тесты на основе свойств обнаруживаются (например, FsCheck).

Мои пакеты следующие:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="FsCheck" version="2.4.0" targetFramework="net461" />
  <package id="FsCheck.Xunit" version="2.4.0" targetFramework="net461" />
  <package id="FSharp.Core" version="4.0.0.1" targetFramework="net461" />
  <package id="FsUnit" version="2.2.0" targetFramework="net461" />
  <package id="NUnit" version="3.2.1" targetFramework="net461" />
  <package id="xunit.abstractions" version="2.0.0" targetFramework="net461" />
  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net461" />
  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net461" />
  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net461" />
</packages>

Мой app.config выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.4.0" sku=".NETFramework,Version=v4.6.1" />
  </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="3.2.1" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

person Scott Nimrod    schedule 29.05.2016    source источник
comment
Ваши пакеты содержат как NUnit, так и xUnit.net. Если вы хотите использовать NUnit, вам, вероятно, следует начать с удаления всех пакетов xUnit.net.   -  person Mark Seemann    schedule 29.05.2016
comment
Спасибо, Марк. Однако я использую XUnit с FsCheck (т.е. тесты свойств).   -  person Scott Nimrod    schedule 29.05.2016
comment
Да, я это понимаю, но FsCheck.XUnit — это Glue Library для xUnit.net. Это не будет работать с NUnit.   -  person Mark Seemann    schedule 29.05.2016
comment
Кстати, сейчас я читаю ваш блог о поддержке Haskell по умолчанию архитектуры портов и адаптеров. Как вы думаете, готов ли я освоить Haskell на моем нынешнем уровне владения F#?   -  person Scott Nimrod    schedule 29.05.2016
comment
Я не знаю. Извините за прямоту, но вы, кажется, все еще боретесь с основными проблемами F#, но, возможно, вам мешают ваши знания C# и .NET. Возможно, Haskell даст вам возможность начать все заново. Возможно, для вас это сработает лучше, но лично мне изучение Haskell по-прежнему трудно. Опять же, я не думаю, что выбрал самый простой подход к этому...   -  person Mark Seemann    schedule 29.05.2016
comment
Анонимному голосующему, который, кажется, отрицает все вопросы Скотта: если вы чувствуете, что его вопросы плохие, скажите ему, почему вы так думаете. Голосование против без дополнительной обратной связи мешает ему стать лучше.   -  person Mark Seemann    schedule 29.05.2016
comment
Я ценю твою честность. Честно говоря, я все еще ищу упражнение и/или проект, в котором эти концепции начнут работать для меня. А до тех пор, думаю, я просто буду практиковать основы в свободное время.   -  person Scott Nimrod    schedule 29.05.2016
comment
Что вы используете для запуска теста? Я использую VS Test Explorer. Я тоже до сих пор не могу запустить NUnit 3.x, FsCheck с проверкой свойств и использовать VS Test Explorer с сообществом VS 2015. Я почти уверен, что моя проблема заключается в том, что адаптер, который позволяет запускать тест с помощью VS Test Explorer, необходимо обновить; таким образом, быть на переднем крае, как они говорят: кровотечение. Насколько я знаю, все они имеют доступный исходный код, поэтому, если вы хотите, покопайтесь, обновите код и верните его сообществу.   -  person Guy Coder    schedule 29.05.2016
comment
Интересно: Почему тестовый адаптер NUnit не может найти мои тесты FsUnit?   -  person Guy Coder    schedule 29.05.2016
comment
Что вы не получаете с F#? Вы постоянно получаете ошибки компиляции, неверные результаты или что-то еще? Если мы с вами в одно и то же время, то лучше в чате.   -  person Guy Coder    schedule 29.05.2016
comment
Я не думаю, что Haskell обязательно сложнее, чем F#, просто другой. Хорошо то, что у вас не будет костыля ООП, на который можно было бы опереться, а плохо то, что он довольно быстро ввел бы много новых концепций. Я бы сказал, если вы заинтересованы, хотя, пойти на это. Я очень далек от эксперта по Haskell, но я думаю, что это фантастический язык, не в последнюю очередь как источник идей для разработки F#.   -  person TheInnerLight    schedule 30.05.2016
comment
Что касается рассматриваемого вопроса, соответствует ли версия FSharp.Core проекта, который вы пытаетесь протестировать, 4.0.0.1, найденному в этом файле packages.config? Очень легко столкнуться с проблемами, создав новый проект F# 4, а затем попытавшись протестировать его с помощью FsCheck и т. д., если вы не убедитесь, что перенаправления привязки FSharp.Core настроены правильно.   -  person TheInnerLight    schedule 30.05.2016
comment
@ScottNimrod - Как вы создали этот проект? Вручную или вы использовали Project Scaffold? (github.com/fsprojects/ProjectScaffold). Я обнаружил, что у меня было много проблем с NuGet, пока я не начал использовать Project Scaffold для настройки своего проекта; вместо этого он устанавливает пакет, который обеспечивает настройку правильных перенаправлений привязки. Если вы все еще используете NuGet, я бы посоветовал предоставить пакет (fsprojects.github.io/Paket) попытка.   -  person rmunn    schedule 30.05.2016
comment
У меня работал NUnit3TestAdapter. Спасибо. знак равно   -  person Scott Nimrod    schedule 14.07.2016
comment
Я продолжаю возвращаться к этой проблеме и больше не могу заставить свое тестовое открытие работать...   -  person Scott Nimrod    schedule 06.07.2017


Ответы (1)


Пробовали ли вы установить тестовый адаптер NUnit3, чтобы Visual Studio знала о NUnit? https://www.nuget.org/packages/NUnit3TestAdapter

Возможно, ваши тесты FsCheck найдены, потому что Visual Studio уже знает о XUnit.

person marklam    schedule 08.06.2016
comment
(Только что заметил, что это предложение освещено в вопросе, на который Гай Кодер ссылается в комментариях выше. +1 к этому.) - person marklam; 08.06.2016