Skip to content

Commit

Permalink
Fix test error in TestContextOneTimeTearDownTests (nunit#4928)
Browse files Browse the repository at this point in the history
* Move the test into testdata

* Fix the tests I forgot about

* Remoev unneeded null suppression
  • Loading branch information
stevenaw authored Jan 25, 2025
1 parent 6ed875d commit 6148a2b
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 25 deletions.
36 changes: 36 additions & 0 deletions src/NUnitFramework/testdata/TestContextOneTimeTearDownData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// Copyright (c) Charlie Poole, Rob Prouse and Contributors. MIT License - see LICENSE.txt

using NUnit.Framework;

namespace NUnit.TestData
{
[TestFixture]
public class TestContextOneTimeTearDownData
{
public TestContext.ResultAdapter? ResultInOneTimeTearDown { get; private set; }

[Test]
public void TestTruth()
{
Assert.That(true, Is.True);
}

[Test]
public void TestFalsehood()
{
Assert.That(false, Is.False);
}

[Test, Explicit]
public void TestExplicit()
{
Assert.Pass("Always passes if you run it!");
}

[OneTimeTearDown]
public void OneTimeTearDown()
{
ResultInOneTimeTearDown = TestContext.CurrentContext.Result;
}
}
}
47 changes: 22 additions & 25 deletions src/NUnitFramework/tests/TestContextTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using NUnit.Framework.Internal;
using NUnit.TestData.TestContextData;
using NUnit.Framework.Tests.TestUtilities;
using NUnit.TestData;

namespace NUnit.Framework.Tests
{
Expand Down Expand Up @@ -459,35 +460,31 @@ public void TearDown()
public class TestContextOneTimeTearDownTests
{
[Test]
public void TestTruth()
public void TestContextContainsSuiteResults()
{
Assert.That(true, Is.True);
}
var fixture = new TestContextOneTimeTearDownData();

[Test]
public void TestFalsehood()
{
Assert.That(false, Is.False);
}
var result = TestBuilder.RunTestFixture(fixture);

[Test, Explicit]
public void TestExplicit()
{
Assert.Pass("Always passes if you run it!");
}
Assert.That(result, Is.Not.Null);
Assert.Multiple(() =>
{
Assert.That(result.ResultState, Is.EqualTo(ResultState.Success));
Assert.That(result.PassCount, Is.EqualTo(2));
Assert.That(result.FailCount, Is.EqualTo(0));
Assert.That(result.SkipCount, Is.EqualTo(1));
});

[OneTimeTearDown]
public void OneTimeTearDown()
{
TestContext context = TestContext.CurrentContext;
Assert.That(context, Is.Not.Null);
Assert.That(context.Test, Is.Not.Null);
Assert.That(context.Test.Name, Is.EqualTo("TestContextOneTimeTearDownTests"));
Assert.That(context.Result, Is.Not.Null);
Assert.That(context.Result.Outcome, Is.EqualTo(ResultState.Success));
Assert.That(context.Result.PassCount, Is.EqualTo(2));
Assert.That(context.Result.FailCount, Is.EqualTo(0));
Assert.That(context.Result.SkipCount, Is.EqualTo(1));
var tearDownResult = fixture.ResultInOneTimeTearDown;

Assert.That(tearDownResult, Is.Not.Null);
Assert.Multiple(() =>
{
Assert.That(tearDownResult.Outcome, Is.EqualTo(result.ResultState));
Assert.That(tearDownResult.PassCount, Is.EqualTo(result.PassCount));
Assert.That(tearDownResult.FailCount, Is.EqualTo(result.FailCount));
Assert.That(tearDownResult.SkipCount, Is.EqualTo(result.SkipCount));
});
}
}

Expand Down

0 comments on commit 6148a2b

Please sign in to comment.