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 的演讲。我的设置如下:

我有一个包含两个文件的库类型项目。一个带有要测试的代码,一个带有测试代码。该项目编译得很好。我没有使用 VS IDE,而只是使用 F# 的 Ionide 插件的 VSCode 文本编辑器。

我尝试了各种设置,有和没有FSharp.Core安装 nuget,有和没有FSharp.Core.

知道在哪里进一步看吗?我已经没有想法了,而且很沮丧。我已经在这上面花了两天时间。:)

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 回答