static AutomatedTestAssignment FindOrCreateAutomatedTestAssignment(RestClient client, Root root, Package executionPackage, AutomatedTest automatedTest) { if (automatedTest.Id == null) { throw new ArgumentException("automatedTest"); } AutomatedTestAssignment automatedTestAssignment = client.GetAutomatedTestAssignmentByPackageAndTestId(root, executionPackage.Id, automatedTest.Id.Value) ?? client.CreateAutomatedTestAssignmentInPackageId(root, executionPackage.Id, automatedTest.Id.Value); return(automatedTestAssignment); }
static void Main(string[] args) { ServicePointManager.UseNagleAlgorithm = false; Console.WriteLine(HeadingInfo); var options = new Options(); var parser = new CommandLineParser(new CommandLineParserSettings(Console.Error)); if (!parser.ParseArguments(args, options)) { Environment.Exit(1); } var client = new RestClient { Authenticator = new HttpBasicAuthenticator(options.UserName, options.Password) }; Root root = client.GetRoot(options.Server); SystemInfo systemInfo = client.GetSystemInfo(root); Project project = GetProject(client, root, options); Package scriptPackage = FindOrCreateScriptPackage(client, root, project, options, systemInfo); AutomatedTest automatedTest = FindOrCreateAutomatedTest(client, root, scriptPackage, options); Package executionPackage = FindOrCreateExecutionPackage(client, root, project, options, systemInfo); AutomatedTestAssignment automatedTestAssignment = FindOrCreateAutomatedTestAssignment(client, root, executionPackage, automatedTest); IRestResponse <BackgroundTask> progress = StartUploadResults(automatedTestAssignment, options, client); PollTaskProgress(client, progress); Environment.Exit(0); }
static IRestResponse <BackgroundTask> StartUploadResults(AutomatedTestAssignment automatedTestAssignment, Options options, RestClient client) { string fileToUpload = CreateFileToUpload(options.ResultFiles); try { if (options.SaveCopy) { string copyPath = Path.Combine(Environment.CurrentDirectory, "report.zip"); File.Copy(fileToUpload, copyPath); } IRestRequest request = new RestRequest(automatedTestAssignment.GetLink("Runs"), Method.POST).AddHeader("Content-Type", "multipart/mixed"); string path = Path.GetFullPath(fileToUpload); request.AddFile("report", path); IRestResponse <BackgroundTask> result = client.Execute <BackgroundTask>(request); if (result.ErrorMessage != null) { Console.WriteLine("Error occured while uploading results: {0}", result.ErrorMessage); Environment.Exit(3); } if (result.StatusCode != HttpStatusCode.Accepted) { Console.WriteLine("Error occured while uploading results: {0}", result.Content); Environment.Exit(4); } return(result); } finally { File.Delete(fileToUpload); } }