Запуск тестового проекта Abp.AutoMapper.Tests дает случайные результаты и часто завершается с ошибкой.В частности, я говорю об этом тесте: «AutoMapper_Inheritance_Tests.AutoMapKey_MapTo_DerivedCollection_Tests»
Я запускаю процедуру сборки в DevOps Azure.Я использовал шаг C # Make ранее, но изменение его на что-то другое не помогает.Даже если вы запустите предоставленный скрипт сборки (build.ps1), результат никогда не будет прежним.Этот тест может провалиться или нет ... зависит от настроения, я думаю.Мне кажется, что случайный сбой может быть связан с асинхронной природой некоторой базовой логики.
[Fact]
public void AutoMapKey_MapTo_DerivedCollection_Tests()
{
var list1 = new List<MyAutoMapKeyClass1>
{
new MyAutoMapKeyClass1 { Id = 1, TestProp = "New test value 1"},
new MyAutoMapKeyClass1 { Id = 2, TestProp = "New test value 2"}
};
var list2 = new List<MyAutoMapKeyClass2>
{
new MyAutoMapKeyClass2 { Id = 1, TestProp = "Test value 1", Value = 5},
new MyAutoMapKeyClass2 { Id = 2, TestProp = "Test value 2", Value = 10}
};
var list3 = new List<MyAutoMapKeyClass3>
{
new MyAutoMapKeyClass3 { Id = 1, TestProp = "New test value 1"},
new MyAutoMapKeyClass3 { Id = 2, TestProp = "New test value 2"}
};
var list4 = new List<MyAutoMapKeyClass4>
{
new MyAutoMapKeyClass4 { Id = 1, TestProp = "Test value 1", Value = 5},
new MyAutoMapKeyClass4 { Id = 2, TestProp = "Test value 2", Value = 10}
};
var list5 = new List<MyAutoMapKeyClass5>
{
new MyAutoMapKeyClass5 { Id = 1, SecondId = 2, TestProp = "New test value 1"},
new MyAutoMapKeyClass5 { Id = 2, SecondId = 3, TestProp = "New test value 2"}
};
var list6 = new List<MyAutoMapKeyClass6>
{
new MyAutoMapKeyClass6 { Id = 1, SecondId = 2, TestProp = "Test value 1", Value = 5},
new MyAutoMapKeyClass6 { Id = 2, SecondId = 3, TestProp = "Test value 2", Value = 10}
};
var list7 = new List<MyAutoMapKeyClass7>
{
new MyAutoMapKeyClass7 { Id = 1, SecondId = 2, TestProp = "New test value 1"},
new MyAutoMapKeyClass7 { Id = 2, SecondId = 3, TestProp = "New test value 2"}
};
var list8 = new List<MyAutoMapKeyClass8>
{
new MyAutoMapKeyClass8 { Id = 1, SecondId = 2, TestProp = "Test value 1", Value = 5},
new MyAutoMapKeyClass8 { Id = 2, SecondId = 3, TestProp = "Test value 2", Value = 10}
};
_mapper.Map(list1, list2);
list2.Count.ShouldBe(2);
list2[0].TestProp.ShouldBe("New test value 1");
list2[0].Value.ShouldBe(5);
list2[1].TestProp.ShouldBe("New test value 2");
list2[1].Value.ShouldBe(10);
_mapper.Map(list3, list4);
list4.Count.ShouldBe(2);
list4[0].TestProp.ShouldBe("New test value 1");
list4[0].Value.ShouldBe(5);
list4[1].TestProp.ShouldBe("New test value 2");
list4[1].Value.ShouldBe(10);
_mapper.Map(list5, list6);
list6.Count.ShouldBe(2);
list6[0].TestProp.ShouldBe("New test value 1");
list6[0].Value.ShouldBe(5);
list6[1].TestProp.ShouldBe("New test value 2");
list6[1].Value.ShouldBe(10);
_mapper.Map(list7, list8);
list8.Count.ShouldBe(2);
list8[0].TestProp.ShouldBe("New test value 1");
list8[0].Value.ShouldBe(5);
list8[1].TestProp.ShouldBe("New test value 2");
list8[1].Value.ShouldBe(10);
}
}
Отказавший фрагмент - это на самом деле '_mapper.Map (list1, list2);'Ожидается, что результат всегда будет одинаковым, то есть 5. Вместо этого я вижу ошибку:
Тестовый запуск для C: \ agents \ agent3_work \ 1 \ s \ test \ Abp.AutoMapper.Tests \bin \ Debug \ netcoreapp2.2 \ Abp.AutoMapper.Tests.dll (.NETCoreApp, Version = v2.2) Средство командной строки для выполнения теста Microsoft (R), версия 15.9.0 Copyright (c) Microsoft Corporation.Все права защищены.
Начиная выполнение теста, пожалуйста, подождите ... [xUnit.net 00: 00: 02.79] Abp.AutoMapper.Tests.AutoMapper_Inheritance_Tests.AutoMapKey_MapTo_DerivedCollection_TestsTaTaTaTa.TuTa.TuTaT.TuTa.TuTaT.TuTA.TuTaT.TuTA.TuT.AAutoMapKey_MapTo_DerivedCollection_Tests Сообщение об ошибке: mustly.ShouldAssertException: list2 [0]. Значение должно быть 5, но было 0 Трассировка стека: в Abp.AutoMapper.Tests.AutoMapper_Inheritance_Tests.Aesto \ Agers \ In_Defject_S \.AutoMapper.Tests \ AutoMapper_Inheritance_Tests.cs: строка 219
Опять же, результат может быть таким же, даже если я запускаю тест на моей локальной машине, т.е. он не проходит в этом конкретном месте.Тем не менее, если я сразу же заново запускаю этот тест в Проводнике тестов, он работает без проблем.