Support test for XML documentation errors
- can't be done as a unit test because `k.cmd test` doesn't write assemblies for referenced projects - instead support extending the "test" target in builds To enable this in a repo, add the following to the makefile.shade file: ``` #xml-docs-test target='test' k-xml-docs-test ``` Example output with one syntax error and one invalid reference: ``` info: Target xml-docs-test warn: Invalid documentation syntax in src\Microsoft.AspNet.Mvc.Core\bin\debug\net45\Microsoft.AspNet.Mvc.Core.xml warn: 3170: <!-- Badly formed XML comment ignored for member "T:Microsoft.AspNet.Mvc.Rendering.HtmlHelper" --> warn: 3203: If the object is already an <see cref="!:IDictionaries<string, object>"/> instance, then it is ```
This commit is contained in:
parent
c3daa5c8c0
commit
6f7e62201b
|
|
@ -0,0 +1,48 @@
|
|||
|
||||
use namespace="System"
|
||||
use namespace="System.Collections.Generic"
|
||||
use namespace="System.IO"
|
||||
use import="Files"
|
||||
|
||||
default BASE_DIR='${Directory.GetCurrentDirectory()}'
|
||||
|
||||
@{
|
||||
var srcDir = Path.Combine(BASE_DIR, "src");
|
||||
foreach (var xmlFilePath in Files.Include(Path.Combine(srcDir, "**/*.xml")))
|
||||
{
|
||||
var errors = 0;
|
||||
var xmlLines = File.ReadAllLines(xmlFilePath);
|
||||
for (var linesIndex = 0; linesIndex < xmlLines.Length; ++linesIndex)
|
||||
{
|
||||
var xmlLine = xmlLines[linesIndex].Trim();
|
||||
if (xmlLine.StartsWith("<!--"))
|
||||
{
|
||||
// Compiler only emits comments for syntax errors.
|
||||
if (errors == 0)
|
||||
{
|
||||
Log.Warn(string.Format("Invalid documentation syntax in {0}:", xmlFilePath));
|
||||
}
|
||||
|
||||
++errors;
|
||||
Log.Warn(string.Format(" {0}: {1}", linesIndex + 1, xmlLine));
|
||||
}
|
||||
else if (xmlLine.Contains("\"!:"))
|
||||
{
|
||||
// '!' is reference string error token.
|
||||
if (errors == 0)
|
||||
{
|
||||
Log.Warn(string.Format("Invalid documentation syntax in {0}:", xmlFilePath));
|
||||
}
|
||||
|
||||
++errors;
|
||||
Log.Warn(string.Format(" {0}: {1}", linesIndex + 1, xmlLine));
|
||||
}
|
||||
}
|
||||
|
||||
if (errors != 0)
|
||||
{
|
||||
Environment.Exit(errors);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue