[Harness] Verify that issue #8214 is fixed. (#8229)

Added a test in the xml parser that verifies that the parsing of the xml
is correct and that the correct number of failures is reported in the
human readable form.

fixes: https://github.com/xamarin/xamarin-macios/issues/8214
This commit is contained in:
Manuel de la Pena 2020-03-30 07:29:22 -04:00 коммит произвёл GitHub
Родитель 3623d7a72f
Коммит b371133216
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 3974 добавлений и 0 удалений

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -308,5 +308,38 @@ namespace Xharness.Tests
File.Delete (finalPath);
Directory.Delete (logsDir, true);
}
[Test]
public void Issue8214Test ()
{
string expectedResultLine = "Tests run: 2376 Passed: 2301 Inconclusive: 13 Failed: 1 Ignored: 74";
// get the sample that was added to the issue to validate that we do parse the resuls correctly and copy it to a local
// path to be parsed
var name = GetType ().Assembly.GetManifestResourceNames ().Where (a => a.EndsWith ("Issue8214.xml", StringComparison.Ordinal)).FirstOrDefault ();
var tempPath = Path.GetTempFileName ();
var destinationFile = Path.GetTempFileName ();
using (var outputStream = new StreamWriter (tempPath))
using (var sampleStream = new StreamReader (GetType ().Assembly.GetManifestResourceStream (name))) {
string line;
while ((line = sampleStream.ReadLine ()) != null)
outputStream.WriteLine (line);
}
var (resultLine, failed) = resultParser.GenerateHumanReadableResults (tempPath, destinationFile, XmlResultJargon.NUnitV3);
Assert.IsTrue (failed, "failed");
Assert.AreEqual (expectedResultLine, resultLine, "resultLine");
// verify that the destination does contain the result line
string resultLineInDestinationFile = null;
using (var resultReader = new StreamReader (destinationFile)) {
string line;
while ((line = resultReader.ReadLine ()) != null) {
if (line.Contains ("Tests run:")) {
resultLineInDestinationFile = line;
break;
}
}
}
Assert.IsNotNull (resultLineInDestinationFile, "result file result line");
Assert.AreEqual (expectedResultLine, resultLineInDestinationFile, "content result file result line");
}
}
}

Просмотреть файл

@ -102,6 +102,7 @@
<EmbeddedResource Include="Samples\run-log.txt" />
<EmbeddedResource Include="Samples\NUnitV3SampleSuccess.xml" />
<EmbeddedResource Include="Samples\NUnitV3SampleFailure.xml" />
<EmbeddedResource Include="Samples\Issue8214.xml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../DummyTestProcess/DummyTestProcess.csproj">

Просмотреть файл

@ -118,6 +118,7 @@ namespace Xharness {
}
}
var resultLine = $"Tests run: {testcasecount} Passed: {passed} Inconclusive: {inconclusive} Failed: {failed} Ignored: {skipped + inconclusive}";
writer.WriteLine (resultLine);
return (resultLine, failedTestRun);
}