gpt4 book ai didi

unit-testing - 强制 nunit 控制台运行程序使用 CLR 4.5

转载 作者:行者123 更新时间:2023-12-04 01:07:11 25 4
gpt4 key购买 nike

我有以下简单的测试用例:

var uri = new Uri("http://foo.com/bar%2Fbaz");
Assert.AreEqual("http://foo.com/bar%2Fbaz", uri.AbsoluteUri);

此测试在 .NET 4 上失败,但在 .NET 4.5 上通过,我可以使用 ReSharper 测试运行器进行测试,它提供了一个方便的 CLR 选择菜单。

但是,如果我使用 nunit 控制台运行程序运行此测试,如下所示:

nunit-console.exe/framework:4.5 "C:\Data\Projects\UriTest\bin\Debug\UriTest.dll"

我的测试失败了。我什至修改了 nunit-console.exe.config 并添加了这个:
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />

添加此内容后,我已开始从 runner 获取此输出:
Runtime Environment -
OS Version: Microsoft Windows NT 6.2.9200.0
CLR Version: 4.0.30319.34209 ( Net 4.5 )

ProcessModel: Default DomainUsage: Single
Execution Runtime: v4.5

但我的测试仍然失败。知道为什么会这样吗?

最佳答案

在更深入地研究这个问题后,以下是我从不同论坛收集的信息。

首先,它应该自动检测运行时。如果不是(这似乎是您的情况),您始终可以通过使用/framework 命令选项来强制使用正确的运行时框架。

您在 nunit-console.exe.config 中的内容强制 NUnit 运行程序使用指定的运行时。如果您的程序集在不同的 .NET 版本中,NUnit 将在单独的进程中运行它们以强制使用框架版本。

documentation for NUnit 2.6.2 .

您在命令行中的内容不应该是/framework:4.5 而是/framework:net-4.5

下一步是查看您的测试,看看是否有特定的原因导致它失败。

请多评论一些以获取更多信息。

关于unit-testing - 强制 nunit 控制台运行程序使用 CLR 4.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27019061/

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