单元测试中的元素在完成后仍待处理

2024-03-18

运行测试后,我在 Resharper 中看到此警告,所有测试都通过了。

2018.08.09 11:11:58.524 WARN 元素 Data.Tests.Infra.IntegrationTests.ResolvedIdentityTests 已离开 运行完成后待处理。 2018.08.09 11:11:58.524 WARN 元素 Data.Tests.Infra.IntegrationTests.ResolvedIdentityTests.Reso 已离开 运行完成后待处理。

它们是在测试数据库中设置一些 sql 的集成测试,然后针对该数据库运行测试。

这是完整的测试类:

namespace Data.Tests.Infra.IntegrationTests
{
    using System;
    using System.Data.SqlClient;
    using System.Threading.Tasks;
    using Dapper;
    using Infrastructure.Models;
    using Microsoft.VisualStudio.TestTools.UnitTesting;

    [TestClass]
    public sealed class ResolvedIdentityTests
    {
        [ClassInitialize]
        public static void Initialise(TestContext context)
        {
            const string sql = @"insert into infra.tblUnresolvedIdentities
                                (DeviceId, Fqdn, TimeConflictOccured)
                                values
                                ('85E33FB5-C321-4EF2-994C-C835F136BA0C', 'unr.test.foo', '2018-08-06 12:16:24.183'),
                                ('D3F32F97-2375-47CC-86E7-37C50ABAC85F', 'unr2.test.foo', '2018-08-06 12:16:24.183')

                                insert into infra.tblOrg ([Name]) values ('rito')
                                declare @orgId int = (select OrgId from infra.tblOrg where [Name] = 'rito');

                                insert into infra.tblSite ([SiteName], [OrgId]) values ('rito.site', @OrgId);
                                declare @siteId int = (select SiteId from infra.tblSite where [SiteName] = 'rito.site');

                                insert into infra.tblDevice
                                (DeviceId, [Name], SiteId)
                                values
                                ('CE810507-C614-4C65-9675-569EEFFDBC9F', 'unr.test.foo', @siteId),
                                ('94FF1C23-0B7E-41CB-A0F8-058CED0465B3', 'blacklisted.test.foo', @siteId)

                                insert into infra.tblBlacklistedAgents
                                (DeviceId, Fqdn)
                                values
                                ('94FF1C23-0B7E-41CB-A0F8-058CED0465B3', 'rit.test.com')";
            RunSql(sql);
        }

        [ClassCleanup]
        public static void Cleanup()
        {
            const string sql = @"delete from infra.tblBlacklistedAgents where DeviceId = '94FF1C23-0B7E-41CB-A0F8-058CED0465B3'
                                 delete from infra.tblUnresolvedIdentities where DeviceId in ('85E33FB5-C321-4EF2-994C-C835F136BA0C', 'D3F32F97-2375-47CC-86E7-37C50ABAC85F')
                                 delete from infra.tblDevice where DeviceID in( 'CE810507-C614-4C65-9675-569EEFFDBC9F', '94FF1C23-0B7E-41CB-A0F8-058CED0465B3')
                                 delete from infra.tblsite where SiteName = 'rito.site'
                                 delete from infra.tblorg where Name = 'rito'
                                 delete from infra.tblResolvedIdentities where ActualDeviceId = 'CE810507-C614-4C65-9675-569EEFFDBC9F'";
            RunSql(sql);
        }

        private static void RunSql(string sql)
        {
            using (var sqlConnection = new SqlConnection(Configuration.InitConfiguration()["ConnectionString"]))
                sqlConnection.Execute(sql);
        }

        [TestMethod]
        public async Task ResolvedIdentityTests_ShouldResolveAnIdentityAndAddRowToResolvedIdentityTable()
        {
            var infra = new Infrastructure.Identities(Configuration.InitConfiguration()["ConnectionString"]);
            await infra.ResolveIdentity(erroneousDeviceId: new Guid("85E33FB5-C321-4EF2-994C-C835F136BA0C"), actualDeviceId: new Guid("CE810507-C614-4C65-9675-569EEFFDBC9F"));

            // now call GetResolvedIdentity so we can verify it was resolved.
            var resolvedIdentity = await infra.GetResolvedIdentity(new Guid("85E33FB5-C321-4EF2-994C-C835F136BA0C"));
            Assert.AreEqual(actual: resolvedIdentity.ResolvedIdentity.ActualDeviceId, expected: new Guid("CE810507-C614-4C65-9675-569EEFFDBC9F"));
            Assert.AreEqual(actual: resolvedIdentity.ResolvedIdentity.SiteName, expected: "rito.site");
            Assert.IsFalse(resolvedIdentity.ResolvedIdentity.Id == -1);
            Assert.AreEqual(actual: resolvedIdentity.ResolutionStatus, expected: IdentityResolutionState.Resolved);
        }

        [TestMethod]
        public async Task GetResolvedIdenity_ShouldResolveToBlacklisted()
        {
            var infra = new Infrastructure.Identities(Configuration.InitConfiguration()["ConnectionString"]);
            var resolvedIdentity = await infra.GetResolvedIdentity(new Guid("94FF1C23-0B7E-41CB-A0F8-058CED0465B3"));

            Assert.AreEqual(actual: resolvedIdentity.ResolutionStatus, expected: IdentityResolutionState.Blacklisted);
            Assert.AreEqual(actual: resolvedIdentity.ResolvedIdentity, expected: null);
        }

        [TestMethod]
        public async Task GetResolvedIdenity_ShouldResolveToStillPending()
        {
            var infra = new Infrastructure.Identities(Configuration.InitConfiguration()["ConnectionString"]);
            var resolvedIdentity = await infra.GetResolvedIdentity(new Guid("D3F32F97-2375-47CC-86E7-37C50ABAC85F"));

            Assert.AreEqual(actual: resolvedIdentity.ResolutionStatus, expected: IdentityResolutionState.Pending);
            Assert.AreEqual(actual: resolvedIdentity.ResolvedIdentity, expected: null);
        }
    }
}

我不知道为什么这些测试仍然悬而未决,或者这些警告是否是我应该关心的事情。

这是在 Resharper 测试运行程序中,在 MS 测试运行程序中运行时不显示警告(但也许它不显示警告?)


它看起来像是 ReSharper 中的一个错误:

https://resharper-support.jetbrains.com/hc/en-us/community/posts/360000057490-Unit-Test-Sessions-reports-Inconclusive-Test-not-run- https://resharper-support.jetbrains.com/hc/en-us/community/posts/360000057490-Unit-Test-Sessions-reports-Inconclusive-Test-not-run-

https://youtrack.jetbrains.com/issue/RSRP-469301 https://youtrack.jetbrains.com/issue/RSRP-469301

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

单元测试中的元素在完成后仍待处理 的相关文章

随机推荐

  • 观测信息被泄露

    我有一堂课 我用它作为自身的观察者 当其他对象更改其属性时 我需要它通知我 当它被释放时 我懒得删除观察者 但是我收到这样的错误 An instance 0xf819680 of class was deallocated while ke
  • 如何使用{pre,in,post}顺序遍历结果重建BST

    我们知道前序 中序和后序遍历 什么算法可以重建 BST 因为是 BST in order可以排序自pre order or post order 其实 无论是pre order or post order只需要 如果你知道比较函数是什么 F
  • 如何使用 Selenium WebDriver 在新选项卡(chrome)中打开链接?

    System setProperty webdriver chrome driver D softwares chromedriver win32 chromedriver exe WebDriver driver new ChromeDr
  • MemoryStream 返回时禁用读取

    在我的程序中 我基本上是读取一个文件 对其进行一些处理 然后将其作为内存流传递回主程序 该内存流将由流读取器处理 这一切都将由我的 main 旁边的一个类来处理 问题是 当我从另一个类中的方法返回内存流时 canread 变量设置为 fal
  • 快速读取交错数据的方法?

    我有一个包含多个数据通道的文件 该文件以基本速率采样 每个通道都以该基本速率除以某个数字进行采样 它似乎总是 2 的幂 尽管我认为这并不重要 所以 如果我有渠道a b and c 在 1 2 和 4 的分隔符处采样 我的流将如下所示 a0
  • 如何使用主题中本地存储的字体覆盖默认字体?

    我正在使用 Quarto 构建一个网站 并尝试覆盖主题中的默认字体 我的总体目标是使用本地谷歌字体而不是使用谷歌API my quarto yml看起来像这样 project type website format html theme l
  • MongoDB shell中无序批量更新记录

    我有一个包含数百万个文档的集合 类似于以下内容 id ObjectId value 0 53 combo h 0 v 0 42 h 1 v 1 32 问题是这些值存储为字符串 我需要将它们转换为浮点 双精度 我正在尝试这个并且它正在工作 但
  • 在函数中使用非静态值作为默认参数

    有没有一种好的方法可以将非静态值作为函数中的默认参数 我见过一些对同一问题的较旧的回答 这些回答总是以明确地写出超载而告终 这在 C 17 中还有必要吗 我想做的是做类似的事情 class C const int N Initialized
  • 请推荐一个可处理可拖动元素碰撞检测的 JQuery 插件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们正在使用可拖动 http jqueryui com demos draggable JQuery UI 插件 需要禁止元素之间重叠 我
  • 最终方法是否会阻止 Hibernate 为此类实体创建代理?

    Hibernate 使用代理来实现集合的延迟加载 甚至单端关联 根据Hibernate的 3 6 5 参考文档 部分 21 1 3 单端关联代理 如果这样的代理包含 任何最终方法 我的问题是 此限制仅适用于持久字段的 getter sett
  • 如何使用 Jackson (2.x) 提供程序设置 Jersey 客户端来处理 POST 请求

    我正在努力设置 Jersey 客户端来测试对资源的 POST 请求 我的 Jersey 和 Jackson 依赖项如下所示
  • 更改传单标记图标

    我正在使用 Dennis Wilhelm 的 Leaflet Slider 在 Leaflet 地图上显示数据的变化 我正在尝试更改标记图标 但效果不佳 那么 当使用Leaflet Slider显示随时间的变化时 如何更改标记图标呢 我必须
  • 在 Excel 中计算静态随机数(计算一次)

    我正在寻找一种在 Excel 中计算一次随机数的方法 所以它是在第一次调用时计算的 但之后它就不会改变 举例来说 如果我在 B1 有这样的东西RANDONCE A1 然后我第一次在 A1 中输入一个值时 它会计算一个随机值 但随后它不会再次
  • 如何在TPM中加载和使用持久对称密钥?

    我只是想将一个 32 字节长的对称密钥持久存储在 TPM 的 NV 存储中 并在重新启动后使用它 无需将其从 TPM 中取出 来加密小型数据 我尝试用两种不同的方式做到这一点 1 使用 TPM 的随机字节生成器创建密钥 在NV中定义空间并将
  • Ruby 电子邮件编码和引用的可打印内容

    有没有一种直接的方法来指导 TMail 将正文编码为 quoted printable 我只看到其中用于解码此类内容的方法 而不是创建它 你刚刚使用吗TMail 或者你正在使用它ActionMailer 看起来像TMail本身不具备编码为q
  • Java从其他目录导入

    我正在使用 Java 构建企业服务总线 ESB 我不会进入 细节但我必须构建多个使用相同类的服务器 我有以下目录结构 server1 Main java server2 Main java com Database java 我想从Main
  • ngx-bootstrap - 用于输入的时间选择器弹出窗口

    我正在使用time picker组件来自ngx引导程序 https valor software com ngx bootstrap timepicker我想包括time picker如下输入框 更多以弹出对话框的方式 用于日期选择器 ht
  • OrderedDictionary、ListDictionary 和 HybridDictionary 需要什么?

    当三种不同的字典 OrderedDictionary ListDictionary 和 HybridDictionary 都执行相似的功能时 它们的需求是什么 它们都没有排序 并且可以通过所有集合中的键来检索集合的元素 那么 三个不同类的目
  • bootstrap css,如何在容器内制作全宽div

    我想用引导框架制作这种布局 menu x full width site content
  • 单元测试中的元素在完成后仍待处理

    运行测试后 我在 Resharper 中看到此警告 所有测试都通过了 2018 08 09 11 11 58 524 WARN 元素 Data Tests Infra IntegrationTests ResolvedIdentityTes