public TestAttributeVerificationResult Verify(string sourceFolderPath, IEnumerable <string> sourceFileNames) { var violations = new List <Violation>(); foreach (string sourceFileName in sourceFileNames) { if (!sourceFileName.EndsWith("Test.cs", StringComparison.InvariantCultureIgnoreCase)) { continue; } AbsoluteFilePath sourceFilePath = Path.Combine(sourceFolderPath, sourceFileName); if (!File.Exists(sourceFilePath)) { continue; } string fileContent = File.ReadAllText(sourceFilePath); var containsTextFixtureRegex = new Regex(@"\[.*TestFixture.*\][\n\s]"); if (containsTextFixtureRegex.Match(fileContent).Success) { continue; } string violationMessage = string.Concat("File `", sourceFileName, "` is missing [TestFixture] attribute."); violations.Add(new Violation(violationMessage, sourceFilePath)); } return(violations.Any() ? TestAttributeVerificationResult.CreateFaulty(violations) : TestAttributeVerificationResult.CreateSuccessful()); }
public override bool Execute() { if (this.SourceFiles == null) { return(true); } var testAttributeVerifier = new TestAttributeVerifier(); IEnumerable <string> sourceFileNames = this.SourceFiles.Select(x => x.ItemSpec); TestAttributeVerificationResult result = testAttributeVerifier.Verify(this.SourceFolderPath, sourceFileNames); if (result.Successful) { return(true); } foreach (var violation in result.Violations) { this.LogViolation(violation); } bool continueExecution = !this.TreatWarningsAsErrors; return(continueExecution); }