我在 .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
我遇到了类似的问题,我的 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 如何在后台运行测试做一些事情。希望这有帮助。