将 MSTest、xUnit 或 NUnit 与 dotnet core 结合使用

2023-11-21

TLDR - 跳转到答案以获取有关工作 xUnit 或 MSTest 设置的详细信息。 xUnit 是最不痛苦的选择。

我无法让 NUnit 在我的构建服务器上工作,因此我尝试了 xUnit 和 MSTest - 两者都对我不起作用。

MSTest 我只是不明白 - 我希望它能工作,但是当我尝试从 nuget 安装 dotnet-test-mstest 时,我遇到了依赖性问题,因为它的所有依赖库与 netcoreapp1 不兼容,例如......

依赖项 MSTest.ObjectModel 1.0.1-preview 不支持框架 .NETCoreApp,版本=v1.0。

依赖项 MSTest.TestAdapter.Dotnet 1.0.4-preview 不支持框架。

任何人都可以就为什么会发生这种情况提供任何建议吗?


我按照这些说明创建了全新的项目,成功地完成了这项工作......

https://learn.microsoft.com/en-us/dotnet/articles/core/testing/using-mstest-on-windows

似乎 MSTest dotnet 核心项目需要创建为控制台应用程序才能工作..?

为了帮助所有其他人,这是我最终得到的project.json。

{
    "version": "1.0.0-*",
    "testRunner": "mstest",

    "dependencies": {
        "dotnet-test-mstest": "1.1.1-preview",
        "MyLibrary": {
            "target": "project"
        },
        "Microsoft.NETCore.App": {
            "type": "platform",
            "version": "1.0.1"
        },
        "MSTest.TestFramework": "1.0.4-preview",
        "NSubstitute": "2.0.0-rc"
    },

    "frameworks": {
        "netcoreapp1.0": {
            "imports": "dnxcore50"
        }
    }
}

我似乎在做两件不同的关键事情。首先,我的关键依赖是以前......

"NETStandard.Library": "1.6.0"

而在新的project.json中它是

"Microsoft.NETCore.App": {
        "type": "platform",
         "version": "1.0.1"
     }

(在原始的project.json中,它作为子依赖项放置在文件的框架部分中)。

另一个位于“newtcoreapp1.0”下的导入部分。在原始的project.json中,我使用了它本身,而工作的则导入了dnxcore50(尽管我仍然不相信这实际上是正确的)。

MSTest.TestFramework 的 1.0.5 预览版似乎存在错误 - 我最终更改了早期版本的版本。在 1.0.5 中,测试会加载,但每个测试都会因错误而失败......

无法从程序集“Microsoft.VisualStudio.TestPlatform.TestFramework”加载类型“LogMessageHandler”

我四处寻找可以将其作为错误提交的地方,但还没有运气。如果有人发现它有同样的问题并且知道在哪里记录它,请告诉我,我会'+1'它。

为了完整起见,这里有一个适用于 NUnit 的 project.json 文件(尽管它是 NUnit 3 并且读取它的输出文件(在撰写本文时)是 VSTS 上的一个问题...

{
    "dependencies": {
        "MyLibrary": {
            "target": "project"
        },
        "NETStandard.Library": "1.6.0",
        "NUnit": "3.5.0",
        "dotnet-test-nunit": "3.4.0-beta-1"
    },
    "frameworks": {
        "netcoreapp1.0": {
            "imports": [
                "netcoreapp1.0",
                "portable-net45+win8"
            ],
            "dependencies": {
                "Microsoft.NETCore.App": {
                    "version": "1.0.1-*",
                    "type": "platform"
                },
                "NSubstitute": "2.0.0-rc"
            }
        }
    },
    "testRunner": "nunit",
    "version": "1.0.0-*"
}

这是 xUnit - 我将更多地使用它,因为它在 VSTS 上似乎更可行......

{
    "version": "1.0.0-*",
    "buildOptions": {
        "debugType": "portable"
    },
    "dependencies": {
        "System.Runtime.Serialization.Primitives": "4.1.1",
        "xunit": "2.1.0",
        "dotnet-test-xunit": "1.0.0-rc2-build10015",
        "NSubstitute": "2.0.0-rc",
        "MyLibrary": {
            "target": "project"
        }

    },
    "testRunner": "xunit",
    "frameworks": {
        "netcoreapp1.0": {
            "dependencies": {
                "Microsoft.NETCore.App": {
                    "type": "platform",
                    "version": "1.0.1"
                }
            },
            "imports": [
                "dotnet5.4",
                "portable-net451+win8"
            ]
        }
    }
}

更多真正有用的 xUnit 信息在这里 -https://learn.microsoft.com/en-us/dotnet/articles/core/testing/unit-testing-with-dotnet-test

总的来说,我发现,一旦考虑到 VSTS 的工作,xUnit 远远超过了最容易使用的选项 - 您只需设置构建服务器任务以使用 dotnet test 命令行,然后使用发布测试文件任务显示结果。经过一番痛苦之后,我仍然无法让 MS 测试运行在构建服务器上通过。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 MSTest、xUnit 或 NUnit 与 dotnet core 结合使用 的相关文章

  • 装配和产品版本不匹配

    我正在尝试在 asp net 网站中使用 Ajax 控件工具包 我从之前的一个示例项目中复制了 dll 它有以下详细信息 Assembly Version 3 5 40412 0 File Version 3 5 40412 2 Inter
  • 如何使用 Watin IE 处理 Windows 安全警报对话框

    我正在尝试使用 WatIN IE 实现网站自动化 由于该网站在几次请求后禁止该IP 因此 当IP被禁止时 我设置一个bool ipbanned true 在这种情况下 我想更改IP SetProxy 方法成功更改了 IP 地址和端口 但在下
  • 演示如何在 C# 4.0 中使用新的“dynamic”关键字

    这是 4 0 版本中新的 C 未来 称为动态 告诉我如何在我的代码中使用它以及这个未来可以如何帮助我 相关问题 新的 dynamic C 4 0 关键字是否弃用了 var 关键字 https stackoverflow com questi
  • 如何使用 asp.net 5 项目运行 nunit 测试,尤其是使用 ReSharper?

    我正在开发一个针对 dnx451 的 asp net 5 应用程序 asp net 5 项目依赖于一些为 nunit 2 x 编写的带有单元测试的库 所以对我来说合理的选择是使用 nunit 来测试 asp net 5 项目 当我在 ReS
  • .NET:SqlDataReader.Close 或 .Dispose 导致超时过期异常

    当尝试在 SqlDataReader 上调用 Close 或 Dispose 时 我收到超时过期异常 如果您有到 SQL Server 的 DbConnection 您可以使用以下命令自行重现它 String CRLF r n String
  • Math.Sin、Math.Cos 和 Math.Tan 精度以及正确显示它们的方法

    我正在用 C 编写一个计算器 textBoxResult是一个文本框 我在其中显示数字 recount是以度为单位获取角度并以弧度为单位返回的函数 我的角度是从texBoxInput public double recount int nu
  • Parallel.ForEach - 优雅取消

    关于等待任务完成和线程同步的主题 我目前有一个迭代 我已将其包含在 Parallel ForEach 中 在下面的示例中 我在评论中提出了一些关于如何最好地处理循环的优雅终止的问题 NET 4 0 private void myFuncti
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • 使用 Crypto++ 和 .NET 的 CFB 模式下的 TripleDES

    我正在尝试使用 TripleDES 使用 C 应用程序获得相同的结果 该应用程序具有Crypto https www cryptopp com 和 NET应用程序使用三重DESCryptoServiceProvider https msdn
  • 如何将网络浏览器从 IE 更改为 Firefox

    我正在使用 System Windows Forms WebBrowser 开发 C NET 应用程序 IE 无法正常响应 所以我想更换为 Mozilla Firefox 我怎样才能做到这一点 你不能 The WebBrowser控件是 I
  • 立即检测客户端与服务器套接字的断开连接

    如何检测客户端已与服务器断开连接 我的代码中有以下代码AcceptCallBack method static Socket handler null public static void AcceptCallback IAsyncResu
  • 如何更改 .NET MAUI Blazor 项目中的默认字体?

    我有一个用于 NET MAUI Blazor 应用程序的默认 Visual Studio 项目 针对 Windows x64 构建 我尝试了两种不同的更改字体的方法 在MauiProgram cs中有一个字体的配置ConfigureFont
  • .NET 中的 new Date().getTime()

    基本上我想在 NET 中执行以下操作 但我不知道如何操作 var d new Date getTime milliseconds since 1970 01 01 我不太确定您是否可以在 NET 中获取 UNIX 日期 但您有 DateTi
  • 有没有办法使用 .NET 中的 Kafka Ksql Push 查询

    我目前正在 NET 中使用 Kafka 消费者处理大量 Kafka 消息 我的处理过程的第一步是解析 JSON 并根据 JSON 中特定字段的值丢弃许多消息 我不想首先处理 特别是不下载 那些不需要的消息 看起来 kSql 查询 写为推送查
  • .NET ServiceModel.Syndicate - 更改 RSS 源的编码

    我正在尝试解决我在以下位置生成的所有 RSS 源的错误http captainobvio us http captainobvio us在 Internet Explorer 版本 8 和 9 中产生以下错误 进给代码错误 从当前切换 编码
  • 接口的隐式和显式实现

    在进行升级时 我碰巧遇到了这样的代码 interface ICustomization IMMColumnsDefinition GetColumnsDefinition class Customization ICustomization
  • 使用“new()”和“.StartNew()”创建新实例有什么区别?

    来自我对问题的 回答 任务中的秒表似乎在所有任务中都是累加的 只想测量任务间隔 https stackoverflow com a 16259019 200449 创建新的项目之间可能存在哪些差异跑表 http msdn microsoft
  • 使用 javascript 调用 ViewComponent

    我有一个带有几个视图组件的网页 当我单击这些组件时 我会为其打开一个简单的编辑器 请参见下图 如果我编辑文本并按 Enter 键 我想重新渲染视图组件而不是孔页面 是否可以使用 javascript 调用视图组件来获得此行为 通过更新 您现
  • 使用 TCP 套接字在本地代理视频

    我一直对向媒体浏览器添加对视频播客的支持非常感兴趣 我希望用户能够浏览可用的视频播客并从互联网上流式传输它们 这真的很容易 因为媒体播放器等将愉快地播放存在于云中的文件 问题是我想在本地缓存这些文件 因此同一集的后续观看将不涉及流式传输 而
  • ASP.NET MVC - 临时要求除一页之外的整个站点授权的简单方法

    我正在建立一个混合了公共页面和会员专用页面的网站 登录系统按原样工作正常 不过 我想启动一个封闭的 仅限邀请的预览 并暂时要求访问者登录才能执行除欢迎页面之外的所有操作 目前我有 Authorize 某些操作方法的属性 我也可以向其他操作方

随机推荐

  • 如何在 Maven settings.xml 中设置存储库的顺序

    我的 settings xml 中有 3 个存储库 因为我需要所有这些存储库的工件 每当找不到依赖项时 Maven 就会尝试 Downloading http some server mvn2repo releases org apache
  • MySQL 按最高值选择 DISTINCT

    我有一桌子杂志 需要提取每本杂志的最新一期 我试过了 SELECT DISTINCT magazine FROM product p INNER JOIN SELECT title MAX onSale AS Latest FROM pro
  • 如何将 C++ 成员函数作为参数传递给 C API

    在我的 C 程序中 我需要调用这个 c API GConn gnet conn new const gchar hostname gint port GConnFunc func 其中 GConnFunc 定义为 void GConnFun
  • PHP速度测试当前页面无回显的用户连接速度

    我正在寻找一种检查用户连接速度的可能性 它应该被保存为cookie 如果速度慢的话 javascript文件以及css文件将被适配 我目前测试速度的可能性如下 kb 512 flush echo start time 0 time 1 fi
  • 浮点数的符号

    有没有一种简单的方法来确定浮点数的符号 我进行了实验并想出了这个 include
  • 如何使用算法来填充向量的向量

    I have typedef std vector
  • AngularJS $http:如何避免重定向跟随

    在 AngularJS 应用程序中 我对服务器 URL 进行 http post 调用 这个url的成功响应是30x重定向 我的问题是 http post严格遵循这个重定向并在成功回调中返回最终调用的结果 我想拦截此重定向并手动将用户重定向
  • 返回页面中所有 iframe 的 ID

    由于我正在使用的小部件格式 我有一个页面 其中嵌入了多个 iframe 我不会粘贴代码 因为它庞大且笨拙 但它本质上就是这样
  • Android Gradle 应用程序:connectedCheck 从依赖项运行测试

    我有一些有自己的测试的图书馆项目 我不负责这个库项目 也不关心它的测试 但是 当我运行时gradle app connectedCheck它运行我的测试 但它也运行依赖项的测试 有什么办法可以防止这种情况发生吗 我应该提到我的依赖项不在ap
  • decimal.InvalidOperation,除法对于非常大的数字来说是不可能的

    使用Python 3 5 2 gt gt gt from decimal import Decimal gt gt gt Decimal 12 Decimal 0 01 Decimal 0 00 gt gt gt Decimal 23456
  • Linq 相当于 SQL LEFT 函数?

    我们有一个数据库 其中一些字段为 varchar max 可能包含大量文本 但是我遇到的情况是 我只想从字段中选择前 300 个字符 以用于 MVC 网站上的分页结果表进行该领域的 预览 对于一个简化的示例查询 我想在表中显示所有位置 这将
  • 按连续序列对整数进行分组列表

    我有一个整数列表 1 2 3 4 5 8 9 10 11 200 201 202 我想将它们分组到一个列表列表中 其中每个子列表都包含顺序未被破坏的整数 像这样 1 5 8 11 200 202 我有一个相当笨拙的工作 lSequenceO
  • 在淘汰赛中重新应用绑定

    我基本上想在同一页面上为不同的对象重新应用绑定 但有奇怪的行为 重新应用绑定后 项目列表丢失 请看这里 http jsfiddle net baio 9UcUs 5 该怎么办 简短的回答是不支持 长的答案是有一些方法可以解决这个问题 一种方
  • 使用反射解压数组

    我正在尝试解压从反映对象字段获得的数组 我将常规字段的值设置为一个对象 如果它是一个数组 那么我想将我的通用对象转换为数组 无论其类型是什么 并提取其内容 fields i setAccessible true String key fie
  • 如何直接从IDE读取Python源代码

    我目前正在学习Python 我想通过阅读它的源代码来更深入地了解Python是如何工作的 我可以手动进入Python安装目录查看源代码 我想知道是否可以直接从PyCharm等IDE读取Python源代码 我尝试过了control click
  • 如果没有互联网连接,xmlns属性如何工作并被浏览器理解?

    一个简单的 XHTML 文档 具有最少的所需标签 以及xmlns属性有一个 http 链接 如果我在 localhost 上工作并且没有 Internet 连接 我不能在 XHTML 上工作吗 The content of the docu
  • 导入语句错误“需要“FILENAME”或

    我在将 Appirater 集成到我的应用程序中时遇到一些问题 我已经正确添加了所有必要的文件 并且拥有正确的代码 我认为 但是在尝试将其实现到我的 AppDelegate m 文件中时出现错误 当我做 import Appirater h
  • 使用 MockMvc 在 Spring MVC 中进行单元测试/登录

    我有一个使用 Spring MVC 创建的非常简单的 REST 应用程序 代码可在GitHub 它有一个简单的WebSecurityConfigurer如下 Override protected void configure HttpSec
  • 是否可以使用android的语音识别而不显示对话框?

    我想在 android 中使用语音发送文本 api 但我不想被这些对话框拖慢速度 没有它们是否可以使用该功能 对的 这是可能的 您可以使用 API 中的 SpeechRecognizer 类 确保它在主线程中使用 根据 API 的要求 并且
  • 将 MSTest、xUnit 或 NUnit 与 dotnet core 结合使用

    TLDR 跳转到答案以获取有关工作 xUnit 或 MSTest 设置的详细信息 xUnit 是最不痛苦的选择 我无法让 NUnit 在我的构建服务器上工作 因此我尝试了 xUnit 和 MSTest 两者都对我不起作用 MSTest 我只