in src/dotnet/Rider.Plugins.TrxPlugin/TrxManager.cs [98:144]
private IUnitTestElement TestElementCreator(UnitTestResult current, IUnitTestTransaction tx,
HashSet<IUnitTestElement> elements, string testRunId)
{
UnitTestElementNamespace ns = current.Definition?.TestMethod?.ClassName == null
? UnitTestElementNamespace.Create("")
: UnitTestElementNamespace.Create(
TrxParser.GetNamespaceFromClassName(current.Definition.TestMethod.ClassName));
TestElement element = new TestElement(current.TestName, ns)
{
NaturalId = UT.CreateId(_myProjectCache.GetProject(_mySolution.SolutionDirectory.ToString()),
TargetFrameworkId.Default,
this._myTestProvider,
testRunId + current.Definition?.TestMethod?.ClassName + current.TestName)
};
if (elements.Contains(element))
{
return null;
}
if (current.InnerResults is null)
{
return element;
}
foreach (var child in current.InnerResults.UnitTestResults)
{
var childElement = TestElementCreator(child, tx, elements, testRunId);
if (childElement is null)
{
continue;
}
childElement.Parent = element;
var realElement = _myRealElementsFinder.FindRealElement(child);
if (realElement is null)
{
tx.Create(childElement);
elements.Add(childElement);
}
else
{
elements.Add(realElement);
}
}
return element;
}