c# - 使用 F# FAKE 测试 PCL

标签 c# mstest portable-class-library f#-fake

我有一个解决方案,其中包含一个 PCL 类库项目和一个测试该库的测试项目 (MSTest)。 PCL 使用 Microsoft.Net.HttpMicrosoft.Bcl.Compression 进行一些 gzip 下载。 PCL 和测试项目都使用 Nuget 引用了前面提到的两个库。

当我在 Visual Studio 中运行测试时,测试有效并通过。当我从 F# FAKE 运行测试时

Target "MainTests" (fun _ ->
    !! (testDir + @"my-dll-name.dll") 
      |> MSTest (fun p -> p)
)

所有测试都失败了

Test method XXX.AvailableLanguagesShoudlExist threw exception: 
System.MissingMethodException: Method not found: 'Void     
System.Net.Http.HttpClientHandler.set_AutomaticDecompression(System.Net.DecompressionMethods)'.

最佳答案

这里的问题可能是您的 Mstest.exe 使用了错误的 F# 或 FSharp.Core.dll 版本 - 我想我们需要更多详细信息来解决这个问题。

  • 请确保 Visual Studio 构建过程和 FAKE 构建过程使用相同的版本。
  • 也许你需要使用绑定(bind)重定向

关于c# - 使用 F# FAKE 测试 PCL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22327538/

相关文章:

带有数据驱动测试的 Mstest 名称代替 Data Row

.net-assembly - 在PCL中获取程序集版本

.net - 为什么 String 类不在可移植库中实现 IEnumerable<char> ?

C# 查询 XML 文档

c# - 在没有 Foreach 循环的情况下更新列表的单列

c# - MSTest 单元测试自行通过,运行其他测试时失败

unit-testing - 需要将文件部署到 TestInitialize() 中使用的 MSTest 影子目录

c# - Xamarin Connectivity 插件总是抛出 NotImplementedException

c# - MongoDB 超时异常 (C#)

c# - 在我的代码中的字典中使用许多字典