INNER CODE UNIT · Python

read_results

alper-han/CrossMacro · scripts/ci/run-tests.py:73

def read_results(path):
    document = ET.parse(path)
    counters = document.find(".//{*}ResultSummary/{*}Counters")
    if counters is None:
        raise ValueError("TRX has no test counters")
    values = {name: int(counters.attrib[name]) for name in ("total", "executed", "passed", "failed", "notExecuted")}
    # VSTest/xUnit may leave Counters.notExecuted at zero for skipped facts.
    # The individual results retain their actual NotExecuted outcomes.
    results = document.findall("./{*}Results/{*}UnitTestResult")
    values["notExecuted"] = sum(result.get("outcome") == "NotExecuted" for result in results)
    if len(results) != values["total"]:
        raise ValueError("TRX is missing individual test results")
    for counter, outcome in (("passed", "Passed"), ("failed", "Failed")):
        if values[counter] != sum(result.get("outcome") == outcome for result in results):
            raise ValueError("TRX counters disagree with individual results")
    if values["executed"] <= 0:
        raise ValueError("No tests executed")
    if any(value < 0 for value in values.values()) or values["passed"] + values["failed"] != values["executed"] or values["executed"] + values["notExecuted"] != values["total"]:

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…