public void SimpleScenario() { var sb = new StringBuilder(); Trace.Listeners.Clear(); var logger = new TeamCityLogger(); Trace.Listeners.Add(new TextWriterTraceListener(new StringWriter(sb))); var events = Substitute.For<TestLoggerEvents>(); logger.Initialize(events, string.Empty); events.TestResult += Raise.EventWith( new TestResultEventArgs( new TestResult(new TestCase("Test.FullyQualified.Name", new Uri("logger://TeamCityLogger"), "c:\\TestAssembly1.dll")))); events.TestResult += Raise.EventWith( new TestResultEventArgs( new TestResult(new TestCase("Test.FullyQualified.Name2", new Uri("logger://TeamCityLogger"), "c:\\TestAssembly2.dll")))); events.TestRunComplete += Raise.EventWith( new TestRunCompleteEventArgs(Substitute.For<ITestRunStatistics>(), false, false, null, new Collection<AttachmentSet>(), TimeSpan.FromSeconds(20))); Approvals.Verify(Regex.Replace(Regex.Replace(sb.ToString(), " timestamp='[^']*'", string.Empty), " flowId='[^']*'", string.Empty)); }
public void SimpleScenario() { var sb = new StringBuilder(); Trace.Listeners.Clear(); var logger = new TeamCityLogger(); Trace.Listeners.Add(new TextWriterTraceListener(new StringWriter(sb))); var events = Substitute.For <TestLoggerEvents>(); logger.Initialize(events, string.Empty); events.TestResult += Raise.EventWith( new TestResultEventArgs( new TestResult(new TestCase("Test.FullyQualified.Name", new Uri("logger://TeamCityLogger"), "c:\\TestAssembly1.dll")))); events.TestResult += Raise.EventWith( new TestResultEventArgs( new TestResult(new TestCase("Test.FullyQualified.Name2", new Uri("logger://TeamCityLogger"), "c:\\TestAssembly2.dll")))); events.TestRunComplete += Raise.EventWith( new TestRunCompleteEventArgs(Substitute.For <ITestRunStatistics>(), false, false, null, new Collection <AttachmentSet>(), TimeSpan.FromSeconds(20))); Approvals.Verify(Regex.Replace(Regex.Replace(sb.ToString(), " timestamp='[^']*'", string.Empty), " flowId='[^']*'", string.Empty)); }
public static int Main(string[] args) { var application = new CommandLineApplication(); application.HelpOption("--help"); var verbose = application.Option("--verbose", "Verbose output and assistance", CommandOptionType.NoValue); var ruleFile = application.Option("--rule-file", "Path to NPV.json", CommandOptionType.SingleValue); var excludedRules = application.Option("--excluded-rule", "Rules to exclude. Calculcated after composite rules are evaluated.", CommandOptionType.MultipleValue); var signRequest = application.Option("--sign-request", "Sign request manifest file.", CommandOptionType.SingleValue); var packageDirectory = application.Argument("Package directory", "Package directory to scan for nupkgs"); application.OnExecute(() => { var totalTimeStopWatch = Stopwatch.StartNew(); if (string.IsNullOrEmpty(packageDirectory.Value)) { application.Error.WriteLine($"Missing required argument {packageDirectory.Name}"); application.ShowHelp(); return(ReturnBadArgs); } if (!ruleFile.HasValue()) { application.Error.WriteAsync($"Missing required option {ruleFile.Template}."); application.ShowHelp(); return(ReturnBadArgs); } var hideInfoLogs = verbose.HasValue(); IPackageVerifierLogger logger; if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TEAMCITY_VERSION"))) { logger = new TeamCityLogger(hideInfoLogs); } else { logger = new PackageVerifierLogger(hideInfoLogs); } // TODO: Show extraneous packages, exclusions, etc. var ignoreAssistanceMode = verbose.HasValue() ? IgnoreAssistanceMode.ShowAll : IgnoreAssistanceMode.ShowNew; var ruleFileContent = File.ReadAllText(ruleFile.Value()); var packageSets = JsonConvert.DeserializeObject <IDictionary <string, PackageSet> >( ruleFileContent, new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Error }); if (signRequest.HasValue()) { Console.WriteLine("The --sign-request parameter is obsolete and will be ignored. It will be removed in a future version"); } logger.LogNormal("Read {0} package set(s) from {1}", packageSets.Count, ruleFile.Value()); var nupkgs = new DirectoryInfo(packageDirectory.Value).EnumerateFiles("*.nupkg", SearchOption.TopDirectoryOnly) .Where(p => !p.Name.EndsWith(".symbols.nupkg")) .ToArray(); logger.LogNormal("Found {0} packages in {1}", nupkgs.Length, packageDirectory.Value); var exitCode = Execute(packageSets, nupkgs, excludedRules.Values, logger, ignoreAssistanceMode); totalTimeStopWatch.Stop(); logger.LogNormal("Total took {0}ms", totalTimeStopWatch.ElapsedMilliseconds); return(exitCode); }); return(application.Execute(args)); }