diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9c9580..8e3c9bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,5 +12,4 @@ jobs: with: dotnet-version: '6.0.x' - name: Run tests - run: dotnet run ServerCodeExciserTest.csproj - working-directory: ./ServerCodeExciserTest \ No newline at end of file + run: dotnet test -l "console;verbosity=detailed" diff --git a/.gitignore b/.gitignore index dfb9810..9885e89 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ bin/ obj/ +# MSTest +TestResults/ + # Grammar UnrealAngelscriptParser/Grammar/* !UnrealAngelscriptParser/Grammar/UnrealAngelscriptLexer.g4 @@ -16,4 +19,4 @@ UnrealAngelscriptParser/Grammar/* # Input/Output Input/ Output/ -Answers/ \ No newline at end of file +Answers/ diff --git a/ServerCodeExciserTest/ExcisionIntegrationTests.cs b/ServerCodeExciserTest/ExcisionIntegrationTests.cs index ea7a8e4..09102e4 100644 --- a/ServerCodeExciserTest/ExcisionIntegrationTests.cs +++ b/ServerCodeExciserTest/ExcisionIntegrationTests.cs @@ -1,49 +1,49 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; using ServerCodeExciser; using ServerCodeExcisionCommon; -using Spectre.Console; using System; using System.IO; using UnrealAngelscriptServerCodeExcision; -public class IntegrationTests +[TestClass] +public class ExcisionIntegrationTests { - private static string TestProblemPath = @"Problems"; - private static string TestAnswerPath = @"Answers"; + private static string DataRootDir = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..", "..", "..")); - public static int Main(string[] args) + [TestMethod] + public void ExciseAngelscriptCases() { int numTestFailures = 0; int numTestCases = 0; - try - { - // Run for Angelscript - var angelscriptResult = RunExciserIntegrationTests( - ".as", - Path.Combine(Environment.CurrentDirectory, TestProblemPath, "Angelscript"), - Path.Combine(Environment.CurrentDirectory, TestAnswerPath, "Angelscript"), - ref numTestFailures, - ref numTestCases); - - // Run for "common" - var commonResult = RunExciserIntegrationTests( - ".common", - Path.Combine(Environment.CurrentDirectory, TestProblemPath, "Common"), - Path.Combine(Environment.CurrentDirectory, TestAnswerPath, "Common"), - ref numTestFailures, - ref numTestCases); - - Console.WriteLine("----------------------------"); - Console.WriteLine($"{numTestCases} test(s) executed."); - Console.WriteLine($"{numTestFailures} test(s) failed."); - } - catch (Exception e) - { - AnsiConsole.WriteException(e); - return 1; - } + // Run for Angelscript + var actual = RunExciserIntegrationTests( + ".as", + Path.Combine(DataRootDir, "Problems", "Angelscript"), + Path.Combine(DataRootDir, "Answers", "Angelscript"), + ref numTestFailures, + ref numTestCases); + + Assert.AreEqual(EExciserReturnValues.Success, actual); + Assert.AreEqual(0, numTestFailures); + } + + [TestMethod] + public void ExciseCommonCases() + { + int numTestFailures = 0; + int numTestCases = 0; + + // Run for "common" + var actual = RunExciserIntegrationTests( + ".common", + Path.Combine(DataRootDir, "Problems", "Common"), + Path.Combine(DataRootDir, "Answers", "Common"), + ref numTestFailures, + ref numTestCases); - return numTestFailures == 0 ? 0 : 1; + Assert.AreEqual(EExciserReturnValues.Success, actual); + Assert.AreEqual(0, numTestFailures); } private static EExciserReturnValues RunExciserIntegrationTests(string fileExtension, string inputPath, string outputPath, ref int numTestFailures, ref int numTestCases) diff --git a/ServerCodeExciserTest/ServerCodeExciserTest.csproj b/ServerCodeExciserTest/ServerCodeExciserTest.csproj index 313aab7..c6c482c 100644 --- a/ServerCodeExciserTest/ServerCodeExciserTest.csproj +++ b/ServerCodeExciserTest/ServerCodeExciserTest.csproj @@ -1,12 +1,15 @@ - Exe net6.0 enable false + + + +