Успешные тесты в Visual Studio 2019, но неуспешные при использовании cli

У нас есть .NET Core 3.0тестовый проект с около 603 тестовыми методами. Все они успешно выполняются при использовании обозревателя тестов в Visual Studio 2019. Эти тесты также выполняются на нашей машине сборки через dotnet cli. Здесь мы используем очень простойdotnet test. Здесь несколько тестов терпят неудачу, все с одним и тем же сообщением:

Test method XyzUT threw exception:
System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
...

Я пытаюсь понять, действительно ли это проблема с безопасностью потоков в тестовом коде или проблема с тем, как мы выполняем наши тесты через cli?

Если на самом деле это проблема потока на стороне кода, почему Visual Studio выполняет их все (всегда) успешно, а команда cli всегда дает сбой?

Я попытался запустить тесты с параметром распараллеливания, установленным на false:

dotnet test -p:ParallelizeTestCollections=false

Я надеялся добиться строго последовательного выполнения тестов таким образом. К сожалению, это не помогло.

Вот один из неудачных тестов:

[STATestMethod]
public void AutoscaleYAxisUT()
{
    var privateViewModel = new UTPrivateObject( _viewModel );
    var result = (Boolean)privateViewModel.Invoke( "AutoscaleAxis" );
    Assert.AreEqual( true, result, FailMsgCtorValue( "true" ) );
}

Fyi UTPrivateObjectэто наша собственная реализация класса MicroSoft PrivateObject. Нам пришлось реализовать это, так как подходящего класса вdotnet core 3.0

0 ответов

Другие вопросы по тегам