private static void AssertSolutionHasExpectedResults(string directory)
        {
            var testSolution = CreateTestSolutionFromDirectory(directory);
            var testRun      = TestSolutionRunner.Run(testSolution);

            Assert.Equal(testRun.Expected.NormalizeJson(), testRun.Actual.NormalizeJson());
        }
        public void SolutionIsTestedCorrectly(TestSolution solution)
        {
            var testRun = TestSolutionRunner.Run(solution);

            Assert.Equal(testRun.Expected.NormalizeJson(), testRun.Actual.NormalizeJson());
        }
        public void SingleCompileError()
        {
            var testRun = TestSolutionRunner.Run("SingleCompileError");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void NotImplemented()
        {
            var testRun = TestSolutionRunner.Run("NotImplemented");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void NoTests()
        {
            var testRun = TestSolutionRunner.Run("NoTests");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void NetCoreApp3_1()
        {
            var testRun = TestSolutionRunner.Run("NetCoreApp3.1");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void MultipleCompileErrors()
        {
            var testRun = TestSolutionRunner.Run("MultipleCompileErrors");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void MultipleTestsWithTestOutputExceedingLimit()
        {
            var testRun = TestSolutionRunner.Run("MultipleTestsWithTestOutputExceedingLimit");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void MultipleTestsWithSingleFail()
        {
            var testRun = TestSolutionRunner.Run("MultipleTestsWithSingleFail");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void MultipleTestsWithAllPasses()
        {
            var testRun = TestSolutionRunner.Run("MultipleTestsWithAllPasses");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void SingleTestThatPassesWithDifferentSlug()
        {
            var testRun = TestSolutionRunner.Run("SingleTestThatPassesWithDifferentSlug", "Foo");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }
        public void SingleTestThatPasses()
        {
            var testRun = TestSolutionRunner.Run("SingleTestThatPasses");

            Assert.Equal(testRun.Expected, testRun.Actual);
        }