gpt4 book ai didi

f# - 由于 F# 库中的 DLL 加载问题,NUnit 测试失败

转载 作者:行者123 更新时间:2023-12-04 17:12:17 24 4
gpt4 key购买 nike

我之前在将 NUnit 与 F# 结合使用时遇到过这个问题:

Could not load file or assembly 'nunit.framework, Version=2.6.3.13283

我已将我的 FSharp.Core 版本降级到较低的版本号。我不确定我需要做什么才能让我的测试无一异常(exception)地运行。

代码

module Foo

open NUnit.Framework
open FsUnit

[<Test>]
let ``some test``() =
1 |> should equal 1

Packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FSharp.Core" version="4.0.0.1" targetFramework="net46" />
<package id="FsUnit" version="1.4.1.0" targetFramework="net46" />
<package id="NUnit" version="2.6.4" targetFramework="net46" />
<package id="NUnitTestAdapter" version="2.0.0" targetFramework="net46" />
<package id="xunit" version="2.1.0" targetFramework="net46" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net46" />
<package id="xunit.assert" version="2.1.0" targetFramework="net46" />
<package id="xunit.core" version="2.1.0" targetFramework="net46" />
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="net46" />
<package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net46" />
<package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net46" />
</packages>

最佳答案

这很可能是因为 FsUnit 引用了旧版本的 nunit.framework (2.6.3),但是您的应用程序是针对较新版本的 NUnit (2.6) 编译的.4).

解决这个问题的方法是将 app.config 添加到您的测试项目,这会将所有版本的 NUnit 映射到您在项目中引用的版本。像这样:

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

我在 one project recently 中解决了完全相同的问题,因此以上内容可能只适合您 - 但如果不是,请使用 ILSpy 等工具检查您的 nunit.framework.dll 版本是什么。我有 2.6.4.14350,但你可能有不同的。

关于f# - 由于 F# 库中的 DLL 加载问题,NUnit 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37152003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com