Консольный бегун NUnit 3 не может утверждать, что коллекция упорядочена

Я использую сборку CI с использованием Travis CI. Я запускаю тесты NUnit через nunit3-console.exe, У меня есть несколько тестов, которые пытаются утверждать, что коллекция упорядочена:

[Test]
public void FeatsAreSorted()
{
    var result = controller.Generate() as JsonResult;
    dynamic data = result.Data;
    Assert.That(data.character.Ability.Feats, Is.Ordered.By("Name"));
}

Когда я запускаю этот тест в Visual Studio, тест проходит нормально. Тем не менее, когда я запускаю тест через nunit3-console.exe в Travis CI я получаю следующую ошибку:

1) Error : DNDGenSite.Tests.Unit.Controllers.CharacterControllerTests.GenerateSortsCharacterFeats
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException : `NUnit.Framework.Assert.That<System.Linq.OrderedEnumerable<CharacterGen.Common.Abilities.Feats.Feat,string>>(System.Linq.OrderedEnumerable<CharacterGen.Common.Abilities.Feats.Feat,string>, NUnit.Framework.Constraints.IResolveConstraint)' is inaccessible due to its protection level

Это мое .travis.yml:

language: csharp
solution: DNDGenSite.sln
install:
  - nuget restore DNDGenSite.sln
  - nuget install NUnit.Runners -OutputDirectory testrunner
  - nuget install Chutzpah -OutputDirectory testrunner
script:
  - xbuild DNDGenSite.sln /p:TargetFrameworkVersion="v4.5.1" /p:Configuration=Release
  - mono ./testrunner/NUnit.Console.*/tools/nunit3-console.exe ./Tests/bin/Release/DNDGenSite.Tests.dll
  - mono ./testrunner/Chutzpah.*/tools/chutzpah.console.exe ./Tests/Unit/Scripts

Какие-нибудь мысли?

ОБНОВЛЕНИЕ: если я запускаю тесты в git bash, все проходит правильно, в обоих Debug а также Release режимы сборки. Итак, в среде, в которой Travis CI создает консольный запуск, есть что-то другое.

1 ответ

В конце концов, я обнаружил, что утверждение порядка dynamic объект был причиной ошибки в Travis. Если вместо этого я проверил, что он равен другому объекту, и проверил свойства объекта tat, тест проходит нормально.

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