Я использую FluentAssertions 5.3.0, запускаемый под NCrunch 3.14.0.1. При сбое теста я часто видел эту ошибку, когда FluentAssertions пытается сгенерировать отчетное сообщение ...
System.ArgumentOutOfRangeException: startIndex не может быть больше чем
длина строки Имя параметра: startIndex в
System.String.Substring (IntIn startIndex, Int32 длина) в
FluentAssertions.CallerIdentifier.ExtractVariableNameFrom (StackFrame
кадр) в
FluentAssertions.CallerIdentifier.DetermineCallerIdentity () в
FluentAssertions.Execution.AssertionScope.GetIdentifier () в
FluentAssertions.Execution.AssertionScope.FailWith (Строковое сообщение,
Object [] args) в FluentAssertions.Numeric.NumericAssertions`1.Be (T
ожидается, String потому что, Object [] потому что Args) в
TableTests.ConsolidatedMovementsTester.AlternativingMovementStatesAreRecognised ()
в ... test.cs
Ошибка является спорадической - часто она исчезает при повторном запуске теста (в этом случае отображается соответствующий отчет об ошибке). Я видел это в последних двух версиях FluentAssertions и NCrunch, и он появляется на нескольких компьютерах (все работают под управлением Visual Studio 2017 Professional).
Вот пример последнего звонка, чтобы укусить меня ...
results.Count(c => c.IsStationary).Should().Be(5);
, где результаты - это неизменяемый массив POCOs
В этом случае, щелкнув правой кнопкой мыши по провалившемуся тесту и выбрав «перезапустить в новом тестовом прогоне» в окне ncrunch, тест перезапустился и FA выдал правильный отчет.
Может кто-нибудь предложить обходной путь для этого?