Как запустить FsCheck с помощью Xunit

#f# #xunit #xunit.net #f#-fake #fscheck

#f# #xunit #xunit.net #f #-подделка #fscheck

Вопрос:

Привет, я пытаюсь запустить FsCheck.Xunit тесты xunit.runner.console и получаю следующее исключение:

 Kata.TennisProperties.Given advantaged player when advantaged player wins score is correct [FAIL]
  System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ---- System.Exception : The type Kata.Tennis Player is not handled automatically by FsCheck. Consider using another type or writing and registering a generator for it.
  Stack Trace:
       at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
       at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
  

Я пытаюсь следить за выступлением Марка Симанна. Моя настройка выглядит следующим образом:

У меня есть проект с одним типом библиотеки с двумя файлами. Один с кодом для тестирования, а другой с тестовым кодом. Проект компилируется просто отлично. Я не использую VS IDE, а просто текстовый редактор VSCode с плагином Ionide для F #.

Я пробовал использовать различные настройки с FSharp.Core установками nuget и без них, со спецификацией версии и без FSharp.Core нее .

Есть идеи, где искать дальше? У меня заканчиваются идеи, и я расстраиваюсь. Я уже потратил на это два дня. 🙂

Ответ №1:

Исправлено путем добавления app.config файла ниже.

 <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <Paket>True</Paket>
      <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
</configuration>
  

Я делал это раньше, но при использовании VSCode Ionide файл конфигурации не был добавлен в проект. Итак, очень важно, не забудьте также добавить app.config файл в проект. Недостаточно просто создать файл в папке проекта.

Комментарии:

1. Есть ли у вас где-нибудь репозиторий, доступный для просмотра?

2. Я следил за этой статьей теннисные ката до определенного момента. По вашей просьбе я обновил файл в gh. Вот ссылка: github.com/adicirstei/tennis-kata-tut