Skip to content

Commit

Permalink
Adding tests for new log file tokens
Browse files Browse the repository at this point in the history
  • Loading branch information
bshurts committed May 19, 2019
1 parent 02c0c98 commit 993bed0
Show file tree
Hide file tree
Showing 7 changed files with 103 additions and 16 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ msbuild*.err
build*.log
build*.wrn
build*.err
loggerFile.xml
*loggerFile.xml

# MSTest test Results
[Tt]est[Rr]esult*/
Expand Down Expand Up @@ -103,4 +103,4 @@ nugetPackage
.idea

# Test results
test/**/test-results.xml
test/**/*test-results.xml
1 change: 1 addition & 0 deletions src/NUnit.Xml.TestLogger/NUnitXmlTestLogger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,7 @@ private static string OutcomeToString(TestOutcome outcome)
private void InitializeImpl(TestLoggerEvents events, string outputPath)
{
events.TestRunMessage += this.TestMessageHandler;
events.TestRunStart += this.TestRunStartHandler;
events.TestResult += this.TestResultHandler;
events.TestRunComplete += this.TestRunCompleteHandler;

Expand Down
28 changes: 15 additions & 13 deletions test/NUnit.Xml.TestLogger.AcceptanceTests/DotnetTestFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,7 @@ namespace NUnit.Xml.TestLogger.AcceptanceTests

public class DotnetTestFixture
{
public static string RootDirectory
{
get
{
return Path.GetFullPath(
public static string RootDirectory { get; set; } = Path.GetFullPath(
Path.Combine(
Environment.CurrentDirectory,
"..",
Expand All @@ -22,8 +18,8 @@ public static string RootDirectory
"..",
"assets",
"NUnit.Xml.TestLogger.NetCore.Tests"));
}
}

public static string TestAssemblyName { get; set; } = "NUnit.Xml.TestLogger.NetCore.Tests.dll";

public static string TestAssembly
{
Expand All @@ -34,20 +30,26 @@ public static string TestAssembly
#else
var config = "Release";
#endif
return Path.Combine(RootDirectory, "bin", config, "netcoreapp2.0", "NUnit.Xml.TestLogger.NetCore.Tests.dll");
return Path.Combine(RootDirectory, "bin", config, "netcoreapp2.0", TestAssemblyName);
}
}

public static void Execute()
public static void Execute(string resultsFile)
{
var testProject = RootDirectory;
var testLogger = $"--logger:\"nunit;LogFilePath=test-results.xml\"";
var testLogger = $"--logger:\"nunit;LogFilePath={resultsFile}\"";

// Delete stale results file
var testLogFile = Path.Combine(testProject, "test-results.xml");
if (File.Exists(testLogFile))
var testLogFile = Path.Combine(testProject, resultsFile);

// Strip out tokens
var sanitizedResultFile = System.Text.RegularExpressions.Regex.Replace(resultsFile, @"{.*}\.*", string.Empty);
foreach (string fileName in Directory.GetFiles(testProject))
{
File.Delete(testLogFile);
if (fileName.Contains("test-results.xml"))
{
File.Delete(fileName);
}
}

// Log the contents of test output directory. Useful to verify if the logger is copied
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@
<TestRestoreConfig>$(MSBuildThisFileDirectory)../assets/NuGet.$(Configuration).config</TestRestoreConfig>
<TestFullProject>$(MSBuildThisFileDirectory)../assets/NUnit.Xml.TestLogger.NetFull.Tests/NUnit.Xml.TestLogger.NetFull.Tests.csproj</TestFullProject>
<TestCoreProject>$(MSBuildThisFileDirectory)../assets/NUnit.Xml.TestLogger.NetCore.Tests/NUnit.Xml.TestLogger.NetCore.Tests.csproj</TestCoreProject>
<TestMultiProject>$(MSBuildThisFileDirectory)../assets/NUnit.Xml.TestLogger.NetMulti.Tests/NUnit.Xml.TestLogger.NetMulti.Tests.csproj</TestMultiProject>
</PropertyGroup>
<Target Name="TestTarget" AfterTargets="Build">
<Message Importance="High" Text="... Building test assets" />
<RemoveDir Directories="$(NuGetPackageRoot)/nunitxml.testlogger" />
<Exec ContinueOnError="False" Command="dotnet build -c $(Configuration) -p:PackageVersion=$(PackageVersion) -p:RestoreConfigFile=$(TestRestoreConfig) -p:RestoreIgnoreFailedSources=true -p:RestoreNoCache=true $(TestCoreProject)"/>
<Exec ContinueOnError="False" Command="dotnet build -c $(Configuration) -p:PackageVersion=$(PackageVersion) -p:RestoreConfigFile=$(TestRestoreConfig) -p:RestoreIgnoreFailedSources=true -p:RestoreNoCache=true $(TestFullProject)"/>
<Exec ContinueOnError="False" Command="dotnet build -c $(Configuration) -p:PackageVersion=$(PackageVersion) -p:RestoreConfigFile=$(TestRestoreConfig) -p:RestoreIgnoreFailedSources=true -p:RestoreNoCache=true $(TestMultiProject)"/>
<Message Importance="High" Text="... Completed" />
</Target>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public NUnitTestLoggerAcceptanceTests()
[ClassInitialize]
public static void SuiteInitialize(TestContext context)
{
DotnetTestFixture.Execute();
DotnetTestFixture.Execute("test-results.xml");
}

[TestMethod]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// Copyright (c) Spekt Contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace NUnit.Xml.TestLogger.AcceptanceTests
{
using System;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using System.Xml.XPath;
using Microsoft.VisualStudio.TestTools.UnitTesting;

[TestClass]
public class NUnitTestLoggerPathTests
{
public NUnitTestLoggerPathTests()
{
}

[ClassInitialize]
public static void SuiteInitialize(TestContext context)
{
DotnetTestFixture.RootDirectory = Path.GetFullPath(
Path.Combine(
Environment.CurrentDirectory,
"..",
"..",
"..",
"..",
"assets",
"NUnit.Xml.TestLogger.NetMulti.Tests"));
DotnetTestFixture.TestAssemblyName = "NUnit.Xml.TestLogger.NetMulti.Tests.dll";
DotnetTestFixture.Execute("{assembly}.{framework}.test-results.xml");
}

[TestMethod]
public void TestRunWithLoggerAndFilePathShouldCreateResultsFile()
{
string[] expectedResultsFiles = new string[]
{
Path.Combine(DotnetTestFixture.RootDirectory, "NUnit.Xml.TestLogger.NetMulti.Tests.NetFramework46.test-results.xml"),
Path.Combine(DotnetTestFixture.RootDirectory, "NUnit.Xml.TestLogger.NetMulti.Tests.NetCoreApp20.test-results.xml")
};
foreach (string resultsFile in expectedResultsFiles)
{
Assert.IsTrue(File.Exists(resultsFile), $"{resultsFile} does not exist.");
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<SourceRoot Condition="$(SourceRoot) == ''">..\..\..\</SourceRoot>
</PropertyGroup>
<Import Project="$(SourceRoot)scripts/settings.targets" />

<PropertyGroup>
<TargetFrameworks>net46;netcoreapp2.0</TargetFrameworks>
<FrameworkPathOverride Condition="'$(OS)' != 'Windows_NT'">/usr/lib/mono/4.5/</FrameworkPathOverride>

<!-- Disable stylecop for test assets -->
<StylecopEnabled>false</StylecopEnabled>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(NETTestSdkMinimumVersion)" />
<PackageReference Include="NUnit" Version="$(NUnitVersion)" />
<PackageReference Include="NUnit3TestAdapter" Version="$(NUnitTestAdapterVersion)" />
<PackageReference Include="NunitXml.TestLogger" Version="$(PackageVersion)" />
</ItemGroup>

<ItemGroup>
<Compile Include="..\NUnit.Xml.TestLogger.NetCore.Tests\UnitTest1.cs">
<Link>UnitTest1.cs</Link>
</Compile>
<Compile Include="..\NUnit.Xml.TestLogger.NetCore.Tests\UnitTest2.cs">
<Link>UnitTest2.cs</Link>
</Compile>
</ItemGroup>

</Project>

0 comments on commit 993bed0

Please sign in to comment.