2

こんにちは、次の例外を使用して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)

私はMark Seemann の話を追おうとしています。私のセットアップは次のとおりです。

2 つのファイルを持つ単一のライブラリ タイプのプロジェクトがあります。1 つはテストするコードを含み、もう 1 つはテスト コードを含みます。プロジェクトは問題なくコンパイルされます。私は VS IDE を使用していませんが、F# 用の Ionide プラグインを備えた VSCode テキスト エディターのみを使用しています。

FSharp.Coreのバージョン指定の有無にかかわらず、ナゲットのインストールの有無にかかわらず、さまざまなセットアップを試しましFSharp.Coreた。

さらにどこを見るべきか考えはありますか?アイデアが枯渇し、イライラしています。私はすでにこれに2日を費やしました。:)

4

1 に答える 1

5

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したがって、非常に重要なことですが、プロジェクトにもファイルを追加することを忘れないでください。プロジェクト フォルダにファイルを作成するだけでは十分ではありません。

于 2016-10-18T08:52:54.760 に答える