简体   繁体   中英

NUnit 3 console runner can't assert that collection is ordered

I am running a CI build using Travis CI. I am running NUnit tests via the nunit3-console.exe . I have several tests that attempt to assert that a collection is ordered:

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

When I run this test in Visual Studio, the test passes fine. However, when I run the test via nunit3-console.exe in Travis CI, I get the following error:

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

This is my .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

Any thoughts?

UPDATE: If I run the tests in the git bash, everything passes correctly, in both Debug and Release build modes. So, there is something different about the environment in which Travis CI builds the console runner.

In the end, I found that asserting the order off of the dynamic object was causing the error in Travis. If instead, I verified it equaled a different object and checked the properties on tat object, the test passes fine.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM