private static TestProject LoadProject(string directoryName, TestProjectData testProjectData) { testProjectData.Validate(); // sanity check testProjectData.MakeAbsolutePaths(directoryName); var testProject = testProjectData.ToTestProject(); return(testProject); }
public static async Task Main(string[] args) { MSBuildLocator.RegisterDefaults(); RootCommand rootCommand = Program.GenerateCommands(); rootCommand.Handler = CommandHandler.Create(async(bool generatePointsFile, bool runTests, DirectoryInfo? projectDir, FileInfo? outputFile) => { if (!generatePointsFile && !runTests) { Console.WriteLine("You didn't give me a task! Use --help for... help! Leave a like if you found out this to be useful!"); return; } string projectDirectory = projectDir?.FullName ?? Environment.CurrentDirectory; ProjectCompiler compiler = new ProjectCompiler(); ICollection <string> assemblyPaths; try { assemblyPaths = compiler.CompileTestProjects(projectDirectory); } catch (CompilationFaultedException exception) { Console.WriteLine(exception.Message); Environment.Exit(1); return; } TestProjectData projectData = new TestProjectData(); foreach (string assemblyPath in assemblyPaths) { projectData.LoadProject(assemblyPath); } if (generatePointsFile) { FileInfo resultsFile = outputFile ?? new FileInfo(Path.Combine(projectDirectory, ".tmc_available_points.json")); await WriteToFile(resultsFile, projectData.Points); } if (runTests) { ProjectTestRunner testRunner = new ProjectTestRunner(projectData); testRunner.RunAssemblies(projectData.Assemblies); FileInfo resultsFile = outputFile ?? new FileInfo(Path.Combine(projectDirectory, ".tmc_test_results.json")); await WriteToFile(resultsFile, testRunner.TestResults); }
/// <inheritdoc /> public TestProject NewProject(string projectName) { if (string.IsNullOrEmpty(projectName)) { throw new ArgumentException("projectName"); } var testProjectData = new TestProjectData(); return(LoadProject(System.IO.Path.GetDirectoryName(projectName), testProjectData)); }
/// <inheritdoc /> public void SaveProject(TestProject testProject, FileInfo testProjectFile) { if (testProject == null) { throw new ArgumentNullException("testProject"); } if (testProjectFile == null) { throw new ArgumentNullException("testProjectFile"); } var testProjectData = new TestProjectData(testProject); testProjectData.Validate(); // sanity check testProjectData.MakeRelativePaths(testProjectFile.DirectoryName); xmlSerializer.SaveToXml(testProjectData, testProjectFile.FullName); }
public ProjectTestRunner(TestProjectData projectData) { this.ProjectData = projectData; this._TestResults = new List <MethodTestResult>(); }