Skip to content

Commit 43bad97

Browse files
committed
Take 2: restore showing passed tests that fail in teardown as errors
1 parent dbf62c0 commit 43bad97

File tree

5 files changed

+41
-45
lines changed

5 files changed

+41
-45
lines changed

src/NUnitCommon/nunit.agent.core.tests/Drivers/NUnitFrameworkDriverTests.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,12 @@ public void RunTestsAction_AfterLoad_ReturnsRunnableSuite()
105105
Assert.That(result.Name, Is.EqualTo("test-suite"));
106106
Assert.That(result.GetAttribute("type"), Is.EqualTo("Assembly"));
107107
Assert.That(result.GetAttribute("runstate"), Is.EqualTo("Runnable"));
108-
Assert.That(result.GetAttribute("testcasecount"), Is.EqualTo(MockAssembly.Tests.ToString()));
108+
Assert.That(result.GetAttribute("testcasecount", 0), Is.EqualTo(MockAssembly.Tests));
109109
Assert.That(result.GetAttribute("result"), Is.EqualTo("Failed"));
110-
Assert.That(result.GetAttribute("passed"), Is.EqualTo(MockAssembly.Passed.ToString()));
111-
Assert.That(result.GetAttribute("failed"), Is.EqualTo(MockAssembly.Failed.ToString()));
112-
Assert.That(result.GetAttribute("skipped"), Is.EqualTo(MockAssembly.Skipped.ToString()));
113-
Assert.That(result.GetAttribute("inconclusive"), Is.EqualTo(MockAssembly.Inconclusive.ToString()));
110+
Assert.That(result.GetAttribute("passed", 0), Is.EqualTo(MockAssembly.Passed_Raw));
111+
Assert.That(result.GetAttribute("failed", 0), Is.EqualTo(MockAssembly.Failed_Raw));
112+
Assert.That(result.GetAttribute("skipped", 0), Is.EqualTo(MockAssembly.Skipped));
113+
Assert.That(result.GetAttribute("inconclusive", 0), Is.EqualTo(MockAssembly.Inconclusive));
114114
Assert.That(result.SelectNodes("test-suite")?.Count, Is.GreaterThan(0), "Explore result should have child tests");
115115
}
116116

src/NUnitCommon/nunit.agent.core.tests/Runners/TestAgentRunnerTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ private static void CheckRunResult(TestEngineResult result)
113113
private static void CheckRunResult(XmlNode result)
114114
{
115115
CheckBasicResult(result);
116-
Assert.That(result.GetAttribute("passed", 0), Is.EqualTo(MockAssembly.Passed));
117-
Assert.That(result.GetAttribute("failed", 0), Is.EqualTo(MockAssembly.Failed));
116+
Assert.That(result.GetAttribute("passed", 0), Is.EqualTo(MockAssembly.Passed_Raw));
117+
Assert.That(result.GetAttribute("failed", 0), Is.EqualTo(MockAssembly.Failed_Raw));
118118
Assert.That(result.GetAttribute("skipped", 0), Is.EqualTo(MockAssembly.Skipped));
119119
Assert.That(result.GetAttribute("inconclusive", 0), Is.EqualTo(MockAssembly.Inconclusive));
120120
}

src/NUnitCommon/nunit.common.tests/TextDisplay/ResultReporterTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ public void SummaryReportTest()
104104
"Test Run Summary",
105105
" Overall result: Failed",
106106
$" Test Count: {MockAssembly.Tests}, Pass: {MockAssembly.Passed}, Fail: {MockAssembly.Failed}, Warn: {MockAssembly.Warnings}, Inconclusive: {MockAssembly.Inconclusive}, Skip: {MockAssembly.Skipped}",
107-
$" Failed Tests - Failures: {MockAssembly.Failed_Other}, Errors: {MockAssembly.Failed_Error}, Invalid: {MockAssembly.Failed_NotRunnable}",
108-
$" Skipped Tests - Ignored: 4, Explicit: 3, Other: 0",
107+
$" Failed Tests - Failures: {MockAssembly.Failures}, Errors: {MockAssembly.Errors}, Invalid: {MockAssembly.NotRunnable}",
108+
$" Skipped Tests - Ignored: {MockAssembly.Ignored}, Explicit: {MockAssembly.Explicit}, Other: 0",
109109
" Start time: 2015-10-19 02:12:28Z",
110110
" End time: 2015-10-19 02:12:29Z",
111111
" Duration: 0.349 seconds",

src/NUnitCommon/nunit.common/ResultSummary.cs

+4-5
Original file line numberDiff line numberDiff line change
@@ -216,11 +216,10 @@ private void Summarize(XmlNode node, bool failedInFixtureTearDown)
216216
InvalidAssemblies++;
217217
UnexpectedError = true;
218218
}
219-
// TODO: This seems wrong and causes failures. Leaving it commented while awaiting feedback.
220-
//if ((type == "SetUpFixture" || type == "TestFixture") && status == "Failed" && label == "Error" && site == "TearDown")
221-
//{
222-
// failedInFixtureTearDown = true;
223-
//}
219+
if ((type == "SetUpFixture" || type == "TestFixture") && status == "Failed" && label == "Error" && site == "TearDown")
220+
{
221+
failedInFixtureTearDown = true;
222+
}
224223

225224
Summarize(node.ChildNodes, failedInFixtureTearDown);
226225
break;

src/TestData/mock-assembly/MockAssembly.cs

+28-31
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ namespace Assemblies
1818
/// </summary>
1919
public class MockAssembly
2020
{
21-
/// <summary>
22-
/// Constant definitions used by tests that both reference the
23-
/// mock-assembly and load it in order to verify counts.
24-
/// </summary>
25-
public const string FileName = "mock.nunit.assembly.exe";
26-
2721
public const int Classes = 9;
2822
public const int NamespaceSuites = 6; // assembly, NUnit, Tests, Assemblies, Singletons, TestAssembly
2923

@@ -65,27 +59,30 @@ public class MockAssembly
6559
public const int ExplicitFixtures = 1;
6660
public const int SuitesRun = Suites - ExplicitFixtures;
6761

68-
public const int PassedButFailedInTearDown = FixtureWithDispose.Tests
69-
+ FixtureWithOneTimeTearDown.Tests
70-
+ TestSetUpFixture.SetUpFixture.TestsInNamespace;
71-
7262
public const int Passed = MockTestFixture.Passed
7363
+ Singletons.OneTestCase.Tests
7464
+ TestAssembly.MockTestFixture.Tests
7565
+ FixtureWithTestCases.Tests
7666
+ ParameterizedFixture.Tests
7767
+ GenericFixtureConstants.Tests
78-
+ AccessesCurrentTestContextDuringDiscovery.Tests
79-
+ PassedButFailedInTearDown;
68+
+ AccessesCurrentTestContextDuringDiscovery.Tests;
69+
70+
public const int PassedButFailedInTearDown = FixtureWithDispose.Tests
71+
+ FixtureWithOneTimeTearDown.Tests
72+
+ TestSetUpFixture.SetUpFixture.TestsInNamespace;
73+
74+
public const int Passed_Raw = Passed + PassedButFailedInTearDown;
8075

81-
public const int Skipped_Ignored = MockTestFixture.Skipped_Ignored + IgnoredFixture.Tests;
82-
public const int Skipped_Explicit = MockTestFixture.Skipped_Explicit + ExplicitFixture.Tests;
83-
public const int Skipped = Skipped_Ignored + Skipped_Explicit;
76+
public const int Ignored = MockTestFixture.Ignored + IgnoredFixture.Tests;
77+
public const int Explicit = MockTestFixture.Explicit + ExplicitFixture.Tests;
78+
public const int Skipped = Ignored + Explicit;
8479

85-
public const int Failed_Error = MockTestFixture.Failed_Error;
86-
public const int Failed_Other = MockTestFixture.Failed_Other;
87-
public const int Failed_NotRunnable = MockTestFixture.Failed_NotRunnable + BadFixture.Tests;
88-
public const int Failed = Failed_Error + Failed_Other + Failed_NotRunnable;
80+
public const int Failures = MockTestFixture.Failures;
81+
public const int Errors_Raw = MockTestFixture.Errors;
82+
public const int Errors = MockTestFixture.Errors + PassedButFailedInTearDown;
83+
public const int NotRunnable = MockTestFixture.NotRunnable + BadFixture.Tests;
84+
public const int Failed = Failures + Errors + NotRunnable;
85+
public const int Failed_Raw = Failures + Errors_Raw + NotRunnable;
8986

9087
public const int Warnings = MockTestFixture.Warnings;
9188

@@ -99,13 +96,13 @@ public static void DisplayCounts()
9996
Console.WriteLine($"Test Count: {Tests}");
10097
Console.WriteLine($" Passed: {Passed}");
10198
Console.WriteLine($" Failed: {Failed}");
102-
Console.WriteLine($" Failures: {Failed_Other}");
103-
Console.WriteLine($" Errors: {Failed_Error}");
104-
Console.WriteLine($" Invalid: {Failed_NotRunnable}");
99+
Console.WriteLine($" Failures: {Failures}");
100+
Console.WriteLine($" Errors: {Errors}");
101+
Console.WriteLine($" Invalid: {NotRunnable}");
105102
Console.WriteLine($" Warnings: {Warnings}");
106103
Console.WriteLine($" Skipped: {Skipped}");
107-
Console.WriteLine($" Explicit: {Skipped_Explicit}");
108-
Console.WriteLine($" Ignored: {Skipped_Ignored}");
104+
Console.WriteLine($" Explicit: {Explicit}");
105+
Console.WriteLine($" Ignored: {Ignored}");
109106
Console.WriteLine($" Inconclusive: {Inconclusive}");
110107
}
111108
}
@@ -119,14 +116,14 @@ public class MockTestFixture
119116

120117
public const int Passed = 1;
121118

122-
public const int Skipped_Ignored = 1;
123-
public const int Skipped_Explicit = 1;
124-
public const int Skipped = Skipped_Ignored + Skipped_Explicit;
119+
public const int Ignored = 1;
120+
public const int Explicit = 1;
121+
public const int Skipped = Ignored + Explicit;
125122

126-
public const int Failed_Other = 1;
127-
public const int Failed_Error = 1;
128-
public const int Failed_NotRunnable = 2;
129-
public const int Failed = Failed_Error + Failed_Other + Failed_NotRunnable;
123+
public const int Failures = 1;
124+
public const int Errors = 1;
125+
public const int NotRunnable = 2;
126+
public const int Failed = Errors + Failures + NotRunnable;
130127

131128
public const int Warnings = 1;
132129

0 commit comments

Comments
 (0)