.Net Realms 断言失败:!realm.is_in_transaction() 打开回溯

问题描述 投票:0回答:1

我在 .Net 上使用 Realms,但收到错误

The active test run was aborted. Reason: Test host process crashed : D:\a\realm-dotnet\realm-dotnet\wrappers\realm-core\src\realm\object-store\impl\realm_coordinator.cpp:1160: [realm-core-13.23.4] Assertion failed: !realm.is_in_transaction() 12:03:26:319    <backtrace not supported on this platform>

运行测试套件时偶尔会出现此错误,我尝试通过领域检查所有代码来解决此问题,确保更改条目的所有内容都在

realm.Write
内,但这种情况仍然会发生。

我主要只是想显示回溯。我正在使用 .Net 8 和领域版本 11.6.1

.net realm
1个回答
0
投票

我遇到了类似的问题,我的 xUnit 单元测试偶尔会失败。我使用这个 nuget 包修复了它:https://www.nuget.org/packages/Nito.AsyncEx.Context 我将每个测试包装在一个异步上下文中,如下所示:

 [Fact]
public void FilterTest()
{
    AsyncContext.Run(() =>
    {
        var realmservice = new RealmService();
        DateTimeOffset offset = DateTime.Today;
        var dateTime = DateTime.Today;
        var universalTime = dateTime.ToUniversalTime();
        DateTimeOffset dateTimeOffset = universalTime.Add(offset.Offset);
        var entry = new DiaryEntry() { Partition = "test", Date = DateTime.Today };
        var realm = realmservice.Get();
        realm.Write(() => realm.Add(entry));
        var result = realm.All<DiaryEntry>().FirstOrDefault(t => t.StoredDate == dateTimeOffset);
        result!.Date.Should().Be(dateTimeOffset);
        realmservice.DisposeRealm();
        return Task.CompletedTask;
    });
}

我认为必须对 xUnit 如何在后台运行测试做一些事情。希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.