diff --git a/.github/actions/test/action.yml b/.github/actions/test/action.yml index e2412695..579773af 100644 --- a/.github/actions/test/action.yml +++ b/.github/actions/test/action.yml @@ -9,7 +9,6 @@ inputs: python-version: description: Python version, e.g. 3.11 required: true - runs: using: 'composite' steps: @@ -78,8 +77,15 @@ runs: python -m pip cache list || true # install dependencies - python_minor_version="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')" - python -m pip install --force -r python/requirements-$python_minor_version.txt + PYTHON_VERSION="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')" + if [[ "$PYTHON_VERSION" == "3.7" ]]; then + DEPENDENCIES_VERSION=3.7 + elif [[ "$PYTHON_VERSION" == "3.8" ]]; then + DEPENDENCIES_VERSION=3.8 + else + DEPENDENCIES_VERSION=post-3.8 + fi + python -m pip install --force -r python/requirements-$DEPENDENCIES_VERSION.txt python -m pip install --force -r python/test/requirements.txt -c python/test/constraints.txt # inspect pip cache diff --git a/.github/workflows/check-upgrades.yml b/.github/workflows/check-upgrades.yml new file mode 100644 index 00000000..6e9906d4 --- /dev/null +++ b/.github/workflows/check-upgrades.yml @@ -0,0 +1,38 @@ +name: Check Upgrades + +on: + workflow_call: + inputs: + python-version: + required: true + type: string +jobs: + check: + name: Check (Python ${{ matrix.python-version }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ${{ fromJson(inputs.python-version) }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + - name: Check for dependency updates + continue-on-error: true + run: | + pip install tox + tox + git diff | tee diff + if [ -s "diff" ]; then + echo 'Dependencies can be upgraded' >> $GITHUB_STEP_SUMMARY + echo '```diff' >> $GITHUB_STEP_SUMMARY + cat diff >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + exit 1 + fi + shell: bash diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 82df66a8..ec5e6e9c 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -10,7 +10,7 @@ permissions: {} jobs: dependencies: - name: Test python/requirements.txt + name: Check python/requirements.txt runs-on: ubuntu-latest steps: - name: Harden the runner (Audit all outbound calls) @@ -26,32 +26,27 @@ jobs: (diff -w <(grep -v -e "python_version <= '3.7'" -e "python_version > '3.8'" python/requirements.txt | sed -e "s/;.*//") python/requirements-3.8.txt || true) | (! grep -e "^<") (diff -w <(grep -v -e "python_version <= '3.7'" -e "python_version == '3.8'" python/requirements.txt | sed -e "s/;.*//") python/requirements-post-3.8.txt || true) | (! grep -e "^<") shell: bash - - name: Check for dependency updates - continue-on-error: true - run: | - pip install tox - tox - git diff --exit-code - shell: bash + + upgrade: + name: Check Upgrades + uses: "./.github/workflows/check-upgrades.yml" + with: + python-version: '["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]' test-mac: name: "Test macOS" uses: "./.github/workflows/test-os.yml" with: - os: '["macos-13", "macos-14", "macos-15"]' - python-version: '["3.10", "3.11", "3.12", "3.13", "installed"]' - include: > - [ - {"os": "macos-13", "python-version": "3.8"}, - {"os": "macos-13", "python-version": "3.9"}, - ] + os: '["macos-14", "macos-15", "macos-26"]' + python-version: '["3.10", "3.11", "3.12", "3.13", "3.14", "installed"]' + include: '[]' test-lnx: name: "Test Ubuntu" uses: "./.github/workflows/test-os.yml" with: os: '["ubuntu-22.04", "ubuntu-24.04"]' - python-version: '["3.9", "3.10", "3.11", "3.12", "3.13", "installed"]' + python-version: '["3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "installed"]' include: > [ {"os": "ubuntu-22.04", "python-version": "3.8"}, @@ -62,8 +57,8 @@ jobs: uses: "./.github/workflows/test-os.yml" with: os: '["windows-2022", "windows-2025"]' - python-version: '["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]' - include: '[{"os": "windows-2022", "python-version": "installed"}]' + python-version: '["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "installed"]' + include: '[]' publish: name: "Publish" @@ -75,10 +70,10 @@ jobs: ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository ) uses: "./.github/workflows/publish.yml" permissions: + contents: read checks: write pull-requests: write security-events: write - contents: read config-deploy: name: Configure Deployment diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d0dbaf62..eb0dfb80 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,15 +16,15 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 + uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 with: egress-policy: audit - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Download Artifacts - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 with: path: artifacts @@ -65,12 +65,12 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 + uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 with: egress-policy: audit - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Set up QEMU uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 @@ -79,132 +79,39 @@ jobs: platforms: ${{ matrix.arch }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - name: Build Docker image id: build - uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0 + uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 with: load: true push: false platforms: linux/${{ matrix.arch }} - tags: step-security/publish-unit-test-result-action:latest + tags: local/step-security/publish-unit-test-result-action:latest outputs: type=docker env: DOCKER_BUILD_RECORD_UPLOAD: false - name: Download Artifacts - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 with: path: artifacts - name: Publish Test Results id: test-results if: (!cancelled()) - env: - INPUT_GITHUB_TOKEN: ${{ github.token }} - INPUT_CHECK_NAME: Test Results (Docker Image ${{ matrix.arch }}) - INPUT_FILES: "artifacts/**/*.xml" - INPUT_JSON_FILE: "tests.json" - INPUT_JSON_SUITE_DETAILS: true - INPUT_JSON_TEST_CASE_RESULTS: true - INPUT_REPORT_SUITE_LOGS: "any" - run: | - docker run --platform linux/${{ matrix.arch }} \ - --workdir $GITHUB_WORKSPACE \ - --rm \ - -e "INPUT_CHECK_NAME" \ - -e "INPUT_JSON_FILE" \ - -e "INPUT_JSON_SUITE_DETAILS" \ - -e "INPUT_JSON_TEST_CASE_RESULTS" \ - -e "INPUT_LOG_LEVEL" \ - -e "INPUT_ROOT_LOG_LEVEL" \ - -e "INPUT_GITHUB_TOKEN" \ - -e "INPUT_GITHUB_RETRIES" \ - -e "INPUT_SSL_VERIFY" \ - -e "INPUT_COMMIT" \ - -e "INPUT_COMMENT_TITLE" \ - -e "INPUT_COMMENT_MODE" \ - -e "INPUT_FAIL_ON" \ - -e "INPUT_ACTION_FAIL" \ - -e "INPUT_ACTION_FAIL_ON_INCONCLUSIVE" \ - -e "INPUT_FILES" \ - -e "INPUT_JUNIT_FILES" \ - -e "INPUT_NUNIT_FILES" \ - -e "INPUT_XUNIT_FILES" \ - -e "INPUT_TRX_FILES" \ - -e "INPUT_TIME_UNIT" \ - -e "INPUT_TEST_FILE_PREFIX" \ - -e "INPUT_REPORT_INDIVIDUAL_RUNS" \ - -e "INPUT_REPORT_SUITE_LOGS" \ - -e "INPUT_DEDUPLICATE_CLASSES_BY_FILE_NAME" \ - -e "INPUT_LARGE_FILES" \ - -e "INPUT_IGNORE_RUNS" \ - -e "INPUT_CHECK_RUN" \ - -e "INPUT_JOB_SUMMARY" \ - -e "INPUT_COMPARE_TO_EARLIER_COMMIT" \ - -e "INPUT_PULL_REQUEST_BUILD" \ - -e "INPUT_EVENT_FILE" \ - -e "INPUT_EVENT_NAME" \ - -e "INPUT_TEST_CHANGES_LIMIT" \ - -e "INPUT_CHECK_RUN_ANNOTATIONS" \ - -e "INPUT_CHECK_RUN_ANNOTATIONS_BRANCH" \ - -e "INPUT_SECONDS_BETWEEN_GITHUB_READS" \ - -e "INPUT_SECONDS_BETWEEN_GITHUB_WRITES" \ - -e "INPUT_SECONDARY_RATE_LIMIT_WAIT_SECONDS" \ - -e "INPUT_JSON_THOUSANDS_SEPARATOR" \ - -e "INPUT_SEARCH_PULL_REQUESTS" \ - -e "HOME" \ - -e "GITHUB_JOB" \ - -e "GITHUB_REF" \ - -e "GITHUB_SHA" \ - -e "GITHUB_REPOSITORY" \ - -e "GITHUB_REPOSITORY_OWNER" \ - -e "GITHUB_RUN_ID" \ - -e "GITHUB_RUN_NUMBER" \ - -e "GITHUB_RETENTION_DAYS" \ - -e "GITHUB_RUN_ATTEMPT" \ - -e "GITHUB_ACTOR" \ - -e "GITHUB_TRIGGERING_ACTOR" \ - -e "GITHUB_WORKFLOW" \ - -e "GITHUB_HEAD_REF" \ - -e "GITHUB_BASE_REF" \ - -e "GITHUB_EVENT_NAME" \ - -e "GITHUB_SERVER_URL" \ - -e "GITHUB_API_URL" \ - -e "GITHUB_GRAPHQL_URL" \ - -e "GITHUB_REF_NAME" \ - -e "GITHUB_REF_PROTECTED" \ - -e "GITHUB_REF_TYPE" \ - -e "GITHUB_WORKSPACE" \ - -e "GITHUB_ACTION" \ - -e "GITHUB_EVENT_PATH" \ - -e "GITHUB_ACTION_REPOSITORY" \ - -e "GITHUB_ACTION_REF" \ - -e "GITHUB_PATH" \ - -e "GITHUB_ENV" \ - -e "GITHUB_STEP_SUMMARY" \ - -e "GITHUB_STATE" \ - -e "GITHUB_OUTPUT" \ - -e "RUNNER_OS" \ - -e "RUNNER_ARCH" \ - -e "RUNNER_NAME" \ - -e "RUNNER_TOOL_CACHE" \ - -e "RUNNER_TEMP" \ - -e "RUNNER_WORKSPACE" \ - -e "ACTIONS_RUNTIME_URL" \ - -e "ACTIONS_RUNTIME_TOKEN" \ - -e "ACTIONS_CACHE_URL" \ - -e GITHUB_ACTIONS=true \ - -e CI=true \ - -v "$RUNNER_TEMP":"$RUNNER_TEMP" \ - -v "/var/run/docker.sock":"/var/run/docker.sock" \ - -v "/home/runner/work/_temp/_github_home":"/github/home" \ - -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" \ - -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" \ - -v "/home/runner/work/publish-unit-test-result-action/publish-unit-test-result-action":"$GITHUB_WORKSPACE" \ - step-security/publish-unit-test-result-action:latest - shell: bash + uses: ./docker + with: + check_name: Test Results (Docker Image ${{ matrix.arch }}) + files: "artifacts/**/*.xml" + json_file: "tests.json" + json_suite_details: true + json_test_case_results: true + report_suite_logs: "any" + docker_registry: local + docker_tag: latest + log_level: DEBUG - name: JSON output uses: ./misc/action/json-output @@ -214,7 +121,7 @@ jobs: - name: Scan for vulnerabilities id: scan - uses: crazy-max/ghaction-container-scan@3e9c23f89cd6b0bda949ffe14f28a3ce282323b7 # v3.0.0 + uses: crazy-max/ghaction-container-scan@4d8e0acba576e46016cbd65b9ecfc604e85e3990 # v3.2.0 continue-on-error: true with: image: step-security/publish-unit-test-result-action:latest @@ -222,13 +129,13 @@ jobs: annotations: true - name: Upload SARIF artifact if: steps.scan.outcome == 'success' - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: SARIF ${{ matrix.arch }} path: ${{ steps.scan.outputs.sarif }} - name: Upload SARIF file - if: (!cancelled()) && steps.scan.outputs.sarif != '' - uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10 + if: (!cancelled() && steps.scan.outputs.sarif != '') + uses: github/codeql-action/upload-sarif@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2 with: sarif_file: ${{ steps.scan.outputs.sarif }} @@ -260,16 +167,16 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 + uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 with: egress-policy: audit - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Setup Python if: matrix.python != 'installed' && matrix.python != 'venv' - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: python-version: ${{ matrix.python }} @@ -279,7 +186,7 @@ jobs: shell: bash - name: Download Artifacts - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 with: path: artifacts @@ -313,37 +220,31 @@ jobs: matrix: # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources include: - - os: macos-13 - os-label: macOS - python: "3.8" - os: macos-latest os-label: macOS python: "venv" - os: macos-latest os-label: macOS python: "installed" - - os: macos-13 - os-label: macOS 13 - python: "installed" steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 + uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 with: egress-policy: audit - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Setup Python if: matrix.python != 'installed' && matrix.python != 'venv' - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: python-version: ${{ matrix.python }} - name: Setup Python if: matrix.python == 'venv' - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: python-version: "3.10" @@ -353,7 +254,7 @@ jobs: shell: bash - name: Download Artifacts - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 with: path: artifacts @@ -396,16 +297,16 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 + uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 with: egress-policy: audit - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Setup Python if: matrix.python != 'installed' && matrix.python != 'venv' - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: python-version: ${{ matrix.python }} @@ -415,7 +316,7 @@ jobs: shell: bash - name: Download Artifacts - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 with: path: artifacts @@ -438,7 +339,7 @@ jobs: - name: Publish Test Results (Bash) id: test-results-bash - if: (!cancelled()) && steps.test-results.outcome != 'skipped' + if: (!cancelled() && steps.test-results.outcome != 'skipped') uses: ./windows/bash with: check_name: Test Results (${{ matrix.os-label }} bash python ${{ matrix.python }}) @@ -477,15 +378,15 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 + uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 with: egress-policy: audit - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Download Artifacts - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 with: path: artifacts @@ -517,12 +418,12 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 + uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 with: egress-policy: audit - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Copy test result files run: cp -rv python/test/files test-files @@ -568,12 +469,12 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 + uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 with: egress-policy: audit - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Copy test junit xml files run: cp -rv python/test/files/junit-xml test-files diff --git a/README.md b/README.md index 5cb5710d..488b4687 100644 --- a/README.md +++ b/README.md @@ -342,6 +342,50 @@ and removal, and `skipped tests` to detect new skipped and un-skipped tests, as `check_run_annotations_branch` to contain your default branch. +
+Options related to Docker + +You can control the Docker image used for the action as below. For this, you need to run the action as follows: + +```yaml +- name: Publish Test Results + uses: step-security/publish-unit-test-result-action/docker@v2 + if: (!cancelled()) + with: + docker_registry: ghcr.io + files: … +``` + +| Option | Default Value | Description | +|:------------------|:------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------| +| `docker_registry` | `ghcr.io` | The docker registry to pull the pre-built action from. Defaults to the Github registry `ghcr.io`. | +| `docker_image` | `step-security/publish-unit-test-result-action` | The docker image name to pull the pre-built action from. Defaults to `step-security/publish-unit-test-result-action`. | +| `docker_tag` | *The same version as in `uses:`* | The docker tag to pull the pre-built action from. This is usually not needed. | +| `docker_platform` | | The platform to use when pulling the docker image. | +
+ +
+Options related to Docker + +You can control the Docker image used for the action as below. For this, you need to run the action as follows: + +```yaml +- name: Publish Test Results + uses: step-security/publish-unit-test-result-action/docker@v2 + if: (!cancelled()) + with: + docker_registry: ghcr.io + files: … +``` + +| Option | Default Value | Description | +|:------------------|:------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------| +| `docker_registry` | `ghcr.io` | The docker registry to pull the pre-built action from. Defaults to the Github registry `ghcr.io`. | +| `docker_image` | `step-security/publish-unit-test-result-action` | The docker image name to pull the pre-built action from. Defaults to `step-security/publish-unit-test-result-action`. | +| `docker_tag` | *The same version as in `uses:`* | The docker tag to pull the pre-built action from. This is usually not needed. | +| `docker_platform` | | The platform to use when pulling the docker image. | +
+ ## JSON result The gathered test information are accessible as JSON via [GitHub Actions steps outputs](https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context) string or JSON file. @@ -866,19 +910,19 @@ The same behaviour can be achieved with multiple steps, each for a specific oper ```yaml - name: Publish Test Results - uses: step-security/publish-unit-test-result-action/linux@2 + uses: step-security/publish-unit-test-result-action/linux@v2 if: runner.os == 'Linux' with: files: test-results/**/*.xml - name: Publish Test Results - uses: step-security/publish-unit-test-result-action/macos@2 + uses: step-security/publish-unit-test-result-action/macos@v2 if: runner.os == 'macOS' with: files: test-results/**/*.xml - name: Publish Test Results - uses: step-security/publish-unit-test-result-action/windows/bash@2 + uses: step-security/publish-unit-test-result-action/windows/bash@v2 if: runner.os == 'Windows' with: files: test-results/**/*.xml diff --git a/composite/action.yml b/composite/action.yml index 2f322ecf..086c5027 100644 --- a/composite/action.yml +++ b/composite/action.yml @@ -209,7 +209,7 @@ runs: continue-on-error: true with: path: .step-security-publish-action-pip - key: step-security-publish-action-pip-${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.version }}-b0048519e3287ae9cfc634aeda40cbfe + key: step-security-publish-action-pip-${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.version }}-cc226b680143b014d26e2c7e6eee8327 - name: Create virtualenv id: venv diff --git a/docker/action-types.yml b/docker/action-types.yml new file mode 100644 index 00000000..318f0b83 --- /dev/null +++ b/docker/action-types.yml @@ -0,0 +1,185 @@ +# See https://github.com/typesafegithub/github-actions-typing/ +inputs: + github_token: + type: string + + github_token_actor: + type: string + + github_retries: + type: integer + + ssl_verify: + type: boolean + + commit: + type: string + + check_name: + type: string + + comment_title: + type: string + + comment_mode: + type: enum + allowed-values: + - always + - changes + - changes in failures + - changes in errors + - failures + - errors + - off + + fail_on: + type: enum + allowed-values: + - nothing + - errors + - test failures + + action_fail: + type: boolean + + action_fail_on_inconclusive: + type: boolean + + files: + type: list + separator: '\n' + list-item: + type: string + + junit_files: + type: list + separator: '\n' + list-item: + type: string + + nunit_files: + type: list + separator: '\n' + list-item: + type: string + + xunit_files: + type: list + separator: '\n' + list-item: + type: string + + trx_files: + type: list + separator: '\n' + list-item: + type: string + + time_unit: + type: enum + allowed-values: + - seconds + - milliseconds + + test_file_prefix: + type: string + + report_individual_runs: + type: boolean + + report_suite_logs: + type: enum + allowed-values: + - info + - error + - any + - none + + deduplicate_classes_by_file_name: + type: boolean + + large_files: + type: boolean + + ignore_runs: + type: boolean + + check_run: + type: boolean + + job_summary: + type: boolean + + compare_to_earlier_commit: + type: boolean + + pull_request_build: + type: enum + allowed-values: + - commit + - merge + + event_file: + type: string + + event_name: + type: string + + test_changes_limit: + type: integer + + check_run_annotations: + type: list + separator: ',' + list-item: + type: enum + allowed-values: + - all tests + - skipped tests + - none + + check_run_annotations_branch: + type: list + separator: ',' + list-item: + type: string + + seconds_between_github_reads: + type: float + + seconds_between_github_writes: + type: float + + secondary_rate_limit_wait_seconds: + type: float + + json_file: + type: string + + json_thousands_separator: + type: string + + json_suite_details: + type: boolean + + json_test_case_results: + type: boolean + + search_pull_requests: + type: boolean + + docker_platform: + type: string + + docker_registry: + type: string + + docker_image: + type: string + + docker_tag: + type: string + +outputs: + json: + type: string \ No newline at end of file diff --git a/docker/action.yml b/docker/action.yml new file mode 100644 index 00000000..1b059ed0 --- /dev/null +++ b/docker/action.yml @@ -0,0 +1,322 @@ +name: 'Publish Test Results' +author: 'step-security' +description: 'Publishes JUnit, NUnit, XUnit, TRX, JSON test results on GitHub for .NET, Dart, Java, JS, Jest, Mocha, Python, Scala, …' + +inputs: + github_token: + description: 'GitHub API Access Token.' + default: ${{ github.token }} + required: false + github_token_actor: + description: '[deprecated] This is not needed any more as this is detected automatically.' + deprecationMessage: 'This is not needed any more as this is detected automatically.' + required: false + github_retries: + description: 'Requests to the GitHub API are retried this number of times. The value must be a positive integer or zero.' + default: '10' + required: false + ssl_verify: + description: 'Either "true" or "false", in which case it controls whether to verify the Github server’s TLS certificate, or a string, in which case it must be a path to a CA bundle to use. Default is "true".' + default: true + required: false + commit: + description: 'Commit SHA to which test results are published. Only needed if the value of GITHUB_SHA does not work for you.' + required: false + check_name: + description: 'Name of the created check run.' + default: 'Test Results' + required: false + comment_title: + description: 'An alternative title for the pull request comment. Defaults to value of check_name input.' + required: false + comment_mode: + description: 'The action posts comments to pull requests that are associated with the commit. Set to "always" - always comment, "changes" - comment when changes w.r.t. the target branch exist, "changes in failures" - when changes in the number of failures and errors exist, "changes in errors" - when changes in the number of (only) errors exist, "failures" - when failures or errors exist, "errors" - when (only) errors exist, "off" - to not create pull request comments.' + default: 'always' + required: false + fail_on: + description: 'The created test result check run has failure state if any test fails or test errors occur. Never fails when set to "nothing", fails only on errors when set to "errors". Default is "test failures".' + default: 'test failures' + required: false + action_fail: + description: 'When set "true", the action itself fails when tests have failed (see option fail_on).' + default: 'false' + required: false + action_fail_on_inconclusive: + description: 'When set "true", the action itself fails when tests are inconclusive (no test results).' + default: 'false' + required: false + files: + description: 'File patterns of test result files. Relative paths are known to work best, while the non-Docker action also works with absolute paths. Supports "*", "**", "?", and "[]" character ranges. Use multiline string for multiple patterns. Patterns starting with "!" exclude the matching files. There have to be at least one pattern starting without a "!".' + required: false + junit_files: + description: 'Deprecated, use "files" option instead.' + deprecationMessage: 'Use "files" option instead.' + required: false + nunit_files: + description: 'Deprecated, use "files" option instead.' + deprecationMessage: 'Use "files" option instead.' + required: false + xunit_files: + description: 'Deprecated, use "files" option instead.' + deprecationMessage: 'Use "files" option instead.' + required: false + trx_files: + description: 'Deprecated, use "files" option instead.' + deprecationMessage: 'Use "files" option instead.' + required: false + time_unit: + description: 'Time values in the test result files have this unit. Supports "seconds" and "milliseconds".' + default: 'seconds' + required: false + test_file_prefix: + description: 'Paths in the test result files should be relative to the git repository for annotations to work best. This prefix is added to (if starting with "+"), or remove from (if starting with "-") test file paths. Examples: "+src/" or "-/opt/actions-runner".' + required: false + report_individual_runs: + description: 'Individual runs of the same test may see different failures. Reports all individual failures when set "true" or the first only otherwise.' + required: false + report_suite_logs: + description: 'In addition to reporting regular test logs, also report test suite logs. These are logs provided on suite level, not individual test level. Set to "info" for normal output, "error" for error output, "any" for both, or "none" for no suite logs at all. Defaults to "none".' + default: 'none' + required: false + deduplicate_classes_by_file_name: + description: 'De-duplicates classes with same name by their file name when set "true", combines test results for those classes otherwise.' + required: false + large_files: + description: 'Support for large files is enabled when set to "true". Defaults to "false", unless ignore_runs is "true".' + required: false + ignore_runs: + description: 'Does not collect test run information from the test result files, which is useful for very large files. This disables any check run annotations.' + default: 'false' + required: false + check_run: + description: 'Set to "true", the results are published as a check run, but it may not be associated with the workflow that ran this action.' + default: 'true' + required: false + job_summary: + description: 'Set to "true", the results are published as part of the job summary page of the workflow run.' + default: 'true' + required: false + compare_to_earlier_commit: + description: 'Test results are compared to results of earlier commits to highlight changes: "false" - disable comparison, "true" - compare across commits.' + default: 'true' + required: false + pull_request_build: + description: 'As part of pull requests, GitHub builds a merge commit, which combines the commit and the target branch. If tests ran on the actual pushed commit, then set this to "commit". Defaults to "merge".' + default: 'merge' + required: false + event_file: + description: 'An alternative event file to use. Useful to replace a "workflow_run" event file with the actual source event file.' + required: false + event_name: + description: 'An alternative event name to use. Useful to replace a "workflow_run" event name with the actual source event name: github.event.workflow_run.event.' + required: false + test_changes_limit: + description: 'Limits the number of removed or skipped tests reported on pull request comments. This report can be disabled with a value of 0. The default is 10.' + required: false + check_run_annotations: + description: 'Adds additional information to the check run. This is a comma-separated list of any of the following values: "all tests" - list all found tests, "skipped tests" - list all skipped tests. Set to "none" to add no extra annotations at all.' + default: 'all tests, skipped tests' + required: false + check_run_annotations_branch: + description: 'Adds check run annotations only on given branches. Comma-separated list of branch names allowed, asterisk "*" matches all branches. Defaults to event.repository.default_branch or "main, master".' + required: false + seconds_between_github_reads: + description: 'Sets the number of seconds the action waits between concurrent read requests to the GitHub API. This throttles the API usage to avoid abuse rate limits: https://docs.github.com/en/rest/overview/resources-in-the-rest-api#abuse-rate-limits.' + default: '0.25' + required: false + seconds_between_github_writes: + description: 'Sets the number of seconds the action waits between concurrent write requests to the GitHub API. This throttles the API usage to avoid abuse rate limits: https://docs.github.com/en/rest/overview/resources-in-the-rest-api#abuse-rate-limits.' + default: '2.0' + required: false + secondary_rate_limit_wait_seconds: + description: 'Sets the number of seconds to wait before retrying secondary rate limit errors. If not set, the default defined in the PyGithub library is used (currently 60 seconds).' + required: false + json_file: + description: 'Results are written to this JSON file.' + required: false + json_thousands_separator: + description: 'Formatted numbers in JSON use this character to separate groups of thousands. Common values are "," or ".". Defaults to punctuation space (\u2008).' + default: ' ' + required: false + json_suite_details: + description: 'Write out all suite details to the JSON file. Setting this to "true" can greatly increase the size of the output. Defaults to "false".' + default: 'false' + required: false + json_test_case_results: + description: 'Write out all individual test case results to the JSON file. Setting this to "true" can greatly increase the size of the output. Defaults to "false".' + default: 'false' + required: false + search_pull_requests: + description: 'Prior to v2.6.0, the action used the "/search/issues" REST API to find pull requests related to a commit. If you need to restore that behaviour, set this to "true". Defaults to "false".' + default: 'false' + required: false + docker_platform: + description: 'The platform to use when pulling the docker image' + required: false + docker_registry: + description: 'The docker registry to pull the pre-built action from. Defaults to the Github registry ghcr.io' + default: 'ghcr.io' + required: false + docker_image: + description: 'The docker image name to pull the pre-built action from. Defaults to step-security/publish-unit-test-result-action' + default: 'step-security/publish-unit-test-result-action' + required: false + docker_tag: + description: 'The docker tag to pull the pre-built action from.' + default: 'v2.21.0' + required: false + +outputs: + json: + description: "Test results as JSON" + value: ${{ steps.test-results.outputs.json }} + +runs: + using: 'composite' + steps: + - name: Publish Test Results + id: test-results + env: + INPUT_GITHUB_TOKEN: ${{ inputs.github_token }} + INPUT_GITHUB_RETRIES: ${{ inputs.github_retries }} + INPUT_SSL_VERIFY: ${{ inputs.ssl_verify }} + INPUT_COMMIT: ${{ inputs.commit }} + INPUT_CHECK_NAME: ${{ inputs.check_name }} + INPUT_COMMENT_TITLE: ${{ inputs.comment_title }} + INPUT_COMMENT_MODE: ${{ inputs.comment_mode }} + INPUT_FAIL_ON: ${{ inputs.fail_on }} + INPUT_ACTION_FAIL: ${{ inputs.action_fail }} + INPUT_ACTION_FAIL_ON_INCONCLUSIVE: ${{ inputs.action_fail_on_inconclusive }} + INPUT_FILES: ${{ inputs.files }} + INPUT_JUNIT_FILES: ${{ inputs.junit_files }} + INPUT_NUNIT_FILES: ${{ inputs.nunit_files }} + INPUT_XUNIT_FILES: ${{ inputs.xunit_files }} + INPUT_TRX_FILES: ${{ inputs.trx_files }} + INPUT_TIME_UNIT: ${{ inputs.time_unit }} + INPUT_TEST_FILE_PREFIX: ${{ inputs.test_file_prefix }} + INPUT_REPORT_INDIVIDUAL_RUNS: ${{ inputs.report_individual_runs }} + INPUT_REPORT_SUITE_LOGS: ${{ inputs.report_suite_logs }} + INPUT_DEDUPLICATE_CLASSES_BY_FILE_NAME: ${{ inputs.deduplicate_classes_by_file_name }} + INPUT_LARGE_FILES: ${{ inputs.large_files }} + INPUT_IGNORE_RUNS: ${{ inputs.ignore_runs }} + INPUT_CHECK_RUN: ${{ inputs.check_run }} + INPUT_JOB_SUMMARY: ${{ inputs.job_summary }} + INPUT_COMPARE_TO_EARLIER_COMMIT: ${{ inputs.compare_to_earlier_commit }} + INPUT_PULL_REQUEST_BUILD: ${{ inputs.pull_request_build }} + INPUT_EVENT_FILE: ${{ inputs.event_file }} + INPUT_EVENT_NAME: ${{ inputs.event_name }} + INPUT_TEST_CHANGES_LIMIT: ${{ inputs.test_changes_limit }} + INPUT_CHECK_RUN_ANNOTATIONS: ${{ inputs.check_run_annotations }} + INPUT_CHECK_RUN_ANNOTATIONS_BRANCH: ${{ inputs.check_run_annotations_branch }} + INPUT_SECONDS_BETWEEN_GITHUB_READS: ${{ inputs.seconds_between_github_reads }} + INPUT_SECONDS_BETWEEN_GITHUB_WRITES: ${{ inputs.seconds_between_github_writes }} + INPUT_SECONDARY_RATE_LIMIT_WAIT_SECONDS: ${{ inputs.secondary_rate_limit_wait_seconds }} + INPUT_JSON_FILE: ${{ inputs.json_file }} + INPUT_JSON_THOUSANDS_SEPARATOR: ${{ inputs.json_thousands_separator }} + INPUT_JSON_SUITE_DETAILS: ${{ inputs.json_suite_details }} + INPUT_JSON_TEST_CASE_RESULTS: ${{ inputs.json_test_case_results }} + INPUT_SEARCH_PULL_REQUESTS: ${{ inputs.search_pull_requests }} + # not documented + INPUT_LOG_LEVEL: ${{ inputs.log_level }} + # not documented + INPUT_ROOT_LOG_LEVEL: ${{ inputs.root_log_level }} + run: | + # Publish Test Results + platform="${{ inputs.docker_platform }}" + docker run ${platform:+--platform $platform} \ + --workdir "/github/workspace" \ + --rm \ + -e "INPUT_CHECK_NAME" \ + -e "INPUT_JSON_FILE" \ + -e "INPUT_JSON_SUITE_DETAILS" \ + -e "INPUT_JSON_TEST_CASE_RESULTS" \ + -e "INPUT_LOG_LEVEL" \ + -e "INPUT_ROOT_LOG_LEVEL" \ + -e "INPUT_GITHUB_TOKEN" \ + -e "INPUT_GITHUB_RETRIES" \ + -e "INPUT_SSL_VERIFY" \ + -e "INPUT_COMMIT" \ + -e "INPUT_COMMENT_TITLE" \ + -e "INPUT_COMMENT_MODE" \ + -e "INPUT_FAIL_ON" \ + -e "INPUT_ACTION_FAIL" \ + -e "INPUT_ACTION_FAIL_ON_INCONCLUSIVE" \ + -e "INPUT_FILES" \ + -e "INPUT_JUNIT_FILES" \ + -e "INPUT_NUNIT_FILES" \ + -e "INPUT_XUNIT_FILES" \ + -e "INPUT_TRX_FILES" \ + -e "INPUT_TIME_UNIT" \ + -e "INPUT_TEST_FILE_PREFIX" \ + -e "INPUT_REPORT_INDIVIDUAL_RUNS" \ + -e "INPUT_REPORT_SUITE_LOGS" \ + -e "INPUT_DEDUPLICATE_CLASSES_BY_FILE_NAME" \ + -e "INPUT_LARGE_FILES" \ + -e "INPUT_IGNORE_RUNS" \ + -e "INPUT_CHECK_RUN" \ + -e "INPUT_JOB_SUMMARY" \ + -e "INPUT_COMPARE_TO_EARLIER_COMMIT" \ + -e "INPUT_PULL_REQUEST_BUILD" \ + -e "INPUT_EVENT_FILE" \ + -e "INPUT_EVENT_NAME" \ + -e "INPUT_TEST_CHANGES_LIMIT" \ + -e "INPUT_CHECK_RUN_ANNOTATIONS" \ + -e "INPUT_CHECK_RUN_ANNOTATIONS_BRANCH" \ + -e "INPUT_SECONDS_BETWEEN_GITHUB_READS" \ + -e "INPUT_SECONDS_BETWEEN_GITHUB_WRITES" \ + -e "INPUT_SECONDARY_RATE_LIMIT_WAIT_SECONDS" \ + -e "INPUT_JSON_THOUSANDS_SEPARATOR" \ + -e "INPUT_SEARCH_PULL_REQUESTS" \ + -e "HOME=/github/home" \ + -e "GITHUB_JOB" \ + -e "GITHUB_REF" \ + -e "GITHUB_SHA" \ + -e "GITHUB_REPOSITORY" \ + -e "GITHUB_REPOSITORY_OWNER" \ + -e "GITHUB_RUN_ID" \ + -e "GITHUB_RUN_NUMBER" \ + -e "GITHUB_RETENTION_DAYS" \ + -e "GITHUB_RUN_ATTEMPT" \ + -e "GITHUB_ACTOR" \ + -e "GITHUB_TRIGGERING_ACTOR" \ + -e "GITHUB_WORKFLOW" \ + -e "GITHUB_HEAD_REF" \ + -e "GITHUB_BASE_REF" \ + -e "GITHUB_EVENT_NAME" \ + -e "GITHUB_SERVER_URL" \ + -e "GITHUB_API_URL" \ + -e "GITHUB_GRAPHQL_URL" \ + -e "GITHUB_REF_NAME" \ + -e "GITHUB_REF_PROTECTED" \ + -e "GITHUB_REF_TYPE" \ + -e "GITHUB_WORKSPACE=/github/workspace" \ + -e "GITHUB_ACTION" \ + -e "GITHUB_EVENT_PATH" \ + -e "GITHUB_ACTION_REPOSITORY" \ + -e "GITHUB_ACTION_REF" \ + -e "GITHUB_PATH" \ + -e "GITHUB_ENV" \ + -e "GITHUB_STEP_SUMMARY" \ + -e "GITHUB_STATE" \ + -e "GITHUB_OUTPUT" \ + -e "RUNNER_OS" \ + -e "RUNNER_ARCH" \ + -e "RUNNER_NAME" \ + -e "RUNNER_TOOL_CACHE" \ + -e "RUNNER_TEMP" \ + -e "RUNNER_WORKSPACE" \ + -e "ACTIONS_RUNTIME_URL" \ + -e "ACTIONS_RUNTIME_TOKEN" \ + -e "ACTIONS_CACHE_URL" \ + -e GITHUB_ACTIONS=true \ + -e CI=true \ + -v "$RUNNER_TEMP":"$RUNNER_TEMP" \ + -v "/var/run/docker.sock":"/var/run/docker.sock" \ + -v "/home/runner/work/_temp/_github_home":"/github/home" \ + -v "$GITHUB_WORKSPACE":"/github/workspace" \ + ${{ inputs.docker_registry }}/${{ inputs.docker_image }}:${{ inputs.docker_tag }} + shell: bash + +branding: + icon: 'check-circle' + color: 'green' diff --git a/linux/action.yml b/linux/action.yml index 8a6b483f..8ed9a5dc 100644 --- a/linux/action.yml +++ b/linux/action.yml @@ -203,7 +203,7 @@ runs: continue-on-error: true with: path: .step-security-publish-action-pip - key: step-security-publish-action-pip-${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.version }}-b0048519e3287ae9cfc634aeda40cbfe + key: step-security-publish-action-pip-${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.version }}-cc226b680143b014d26e2c7e6eee8327 - name: Create virtualenv id: venv diff --git a/macos/action.yml b/macos/action.yml index 8a6b483f..8ed9a5dc 100644 --- a/macos/action.yml +++ b/macos/action.yml @@ -203,7 +203,7 @@ runs: continue-on-error: true with: path: .step-security-publish-action-pip - key: step-security-publish-action-pip-${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.version }}-b0048519e3287ae9cfc634aeda40cbfe + key: step-security-publish-action-pip-${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.version }}-cc226b680143b014d26e2c7e6eee8327 - name: Create virtualenv id: venv diff --git a/misc/action/fetch-workflows/action.yml b/misc/action/fetch-workflows/action.yml index b646aee0..4e5957af 100644 --- a/misc/action/fetch-workflows/action.yml +++ b/misc/action/fetch-workflows/action.yml @@ -1,6 +1,6 @@ name: 'Fetch workflows' author: 'step-security' -description: 'A GitHub Action to find workflows matching a query' +description: 'A GitHub Action to fetc number of dependent workflows' outputs: total_workflows: @@ -16,9 +16,10 @@ runs: run: | for i in {1..60} do - workflows=$(curl -s https://github.com/step-security/publish-unit-test-result-action | (grep "Used by" || true) | sed -e "s/.*title=//" -e 's/["]//g' | cut -d " " -f 1) - if [ -n "$workflows" ] + content=$(curl -s https://github.com/step-security/publish-unit-test-result-action/network/dependents | grep -B1 Repositories | tr '\n' ' ' | sed -E -e "s/ +/ /g") + if [[ $content =~ ([0-9,]+)( Repositories) ]] then + workflows="${BASH_REMATCH[1]}" echo "total=$workflows" >> $GITHUB_OUTPUT exit 0 fi diff --git a/misc/action/json-output/action.yml b/misc/action/json-output/action.yml index 24a75c1b..aa229351 100644 --- a/misc/action/json-output/action.yml +++ b/misc/action/json-output/action.yml @@ -15,9 +15,15 @@ runs: steps: - name: JSON file shell: bash + env: + JSON: ${{ inputs.json }} + JSON_FILE: ${{ inputs.json_file }} run: | - jq . "${{ inputs.json_file }}" - jq .conclusion "${{ inputs.json_file }}" + jq . <<< "$JSON" > json_output + jq . "$JSON_FILE" > json_file + echo "json output: $(cat json_output | wc -c) bytes" + echo "json file: $(cat json_file | wc -c) bytes" + echo "conclusion: $(jq .conclusion json_file)" - name: JSON output if: (!cancelled()) diff --git a/python/publish/__init__.py b/python/publish/__init__.py index baa10237..201cc77b 100644 --- a/python/publish/__init__.py +++ b/python/publish/__init__.py @@ -10,8 +10,8 @@ from publish.unittestresults import Numeric, UnitTestSuite, UnitTestCaseResults, UnitTestRunResults, \ UnitTestRunDeltaResults, UnitTestRunResultsOrDeltaResults, ParseError -# keep the version in sync with action.yml -__version__ = 'v2.20.0' +# keep the version in sync with action.yml and docker/action.yml +__version__ = 'v2.21.0' logger = logging.getLogger('publish') digest_prefix = '[test-results]:data:' diff --git a/python/publish/xslt/nunit3-to-junit.xslt b/python/publish/xslt/nunit3-to-junit.xslt index 00d05513..9521e66a 100644 --- a/python/publish/xslt/nunit3-to-junit.xslt +++ b/python/publish/xslt/nunit3-to-junit.xslt @@ -75,7 +75,7 @@ - + diff --git a/python/requirements-3.10.txt b/python/requirements-3.10.txt index 163f415b..1f04b164 100644 --- a/python/requirements-3.10.txt +++ b/python/requirements-3.10.txt @@ -1,18 +1,16 @@ -humanize==4.11.0 -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 -PyGithub==2.4.0 - Deprecated==1.2.14 - wrapt==1.16.0 - PyJWT==2.9.0 - PyNaCl==1.5.0 - cffi==1.17.1 - pycparser==2.22 - requests==2.32.3 - certifi==2024.8.30 - charset-normalizer==3.4.0 +humanize==4.13.0 +junitparser==4.0.2 +lxml==6.0.2 +psutil==7.1.0 +PyGithub==2.8.1 + PyNaCl==1.6.0 + cffi==2.0.0 + pycparser==2.23 + requests==2.32.5 + charset-normalizer==3.4.3 idna==3.10 - urllib3==2.2.3 - typing_extensions==4.12.2 - urllib3==2.2.3 + urllib3==2.5.0 + certifi==2025.10.5 + PyJWT==2.10.1 + typing_extensions==4.15.0 + urllib3==2.5.0 diff --git a/python/requirements-3.11.txt b/python/requirements-3.11.txt index 163f415b..1f04b164 100644 --- a/python/requirements-3.11.txt +++ b/python/requirements-3.11.txt @@ -1,18 +1,16 @@ -humanize==4.11.0 -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 -PyGithub==2.4.0 - Deprecated==1.2.14 - wrapt==1.16.0 - PyJWT==2.9.0 - PyNaCl==1.5.0 - cffi==1.17.1 - pycparser==2.22 - requests==2.32.3 - certifi==2024.8.30 - charset-normalizer==3.4.0 +humanize==4.13.0 +junitparser==4.0.2 +lxml==6.0.2 +psutil==7.1.0 +PyGithub==2.8.1 + PyNaCl==1.6.0 + cffi==2.0.0 + pycparser==2.23 + requests==2.32.5 + charset-normalizer==3.4.3 idna==3.10 - urllib3==2.2.3 - typing_extensions==4.12.2 - urllib3==2.2.3 + urllib3==2.5.0 + certifi==2025.10.5 + PyJWT==2.10.1 + typing_extensions==4.15.0 + urllib3==2.5.0 diff --git a/python/requirements-3.12.txt b/python/requirements-3.12.txt index 163f415b..1f04b164 100644 --- a/python/requirements-3.12.txt +++ b/python/requirements-3.12.txt @@ -1,18 +1,16 @@ -humanize==4.11.0 -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 -PyGithub==2.4.0 - Deprecated==1.2.14 - wrapt==1.16.0 - PyJWT==2.9.0 - PyNaCl==1.5.0 - cffi==1.17.1 - pycparser==2.22 - requests==2.32.3 - certifi==2024.8.30 - charset-normalizer==3.4.0 +humanize==4.13.0 +junitparser==4.0.2 +lxml==6.0.2 +psutil==7.1.0 +PyGithub==2.8.1 + PyNaCl==1.6.0 + cffi==2.0.0 + pycparser==2.23 + requests==2.32.5 + charset-normalizer==3.4.3 idna==3.10 - urllib3==2.2.3 - typing_extensions==4.12.2 - urllib3==2.2.3 + urllib3==2.5.0 + certifi==2025.10.5 + PyJWT==2.10.1 + typing_extensions==4.15.0 + urllib3==2.5.0 diff --git a/python/requirements-3.13.txt b/python/requirements-3.13.txt index 163f415b..1f04b164 100644 --- a/python/requirements-3.13.txt +++ b/python/requirements-3.13.txt @@ -1,18 +1,16 @@ -humanize==4.11.0 -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 -PyGithub==2.4.0 - Deprecated==1.2.14 - wrapt==1.16.0 - PyJWT==2.9.0 - PyNaCl==1.5.0 - cffi==1.17.1 - pycparser==2.22 - requests==2.32.3 - certifi==2024.8.30 - charset-normalizer==3.4.0 +humanize==4.13.0 +junitparser==4.0.2 +lxml==6.0.2 +psutil==7.1.0 +PyGithub==2.8.1 + PyNaCl==1.6.0 + cffi==2.0.0 + pycparser==2.23 + requests==2.32.5 + charset-normalizer==3.4.3 idna==3.10 - urllib3==2.2.3 - typing_extensions==4.12.2 - urllib3==2.2.3 + urllib3==2.5.0 + certifi==2025.10.5 + PyJWT==2.10.1 + typing_extensions==4.15.0 + urllib3==2.5.0 diff --git a/python/requirements-3.14.txt b/python/requirements-3.14.txt new file mode 100644 index 00000000..1f04b164 --- /dev/null +++ b/python/requirements-3.14.txt @@ -0,0 +1,16 @@ +humanize==4.13.0 +junitparser==4.0.2 +lxml==6.0.2 +psutil==7.1.0 +PyGithub==2.8.1 + PyNaCl==1.6.0 + cffi==2.0.0 + pycparser==2.23 + requests==2.32.5 + charset-normalizer==3.4.3 + idna==3.10 + urllib3==2.5.0 + certifi==2025.10.5 + PyJWT==2.10.1 + typing_extensions==4.15.0 + urllib3==2.5.0 diff --git a/python/requirements-3.7.txt b/python/requirements-3.7.txt index 8bfbf9bf..5065fe04 100644 --- a/python/requirements-3.7.txt +++ b/python/requirements-3.7.txt @@ -2,9 +2,9 @@ humanize==4.6.0 importlib-metadata==6.7.0 typing_extensions==4.7.1 zipp==3.15.0 -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 +junitparser==4.0.2 +lxml==5.4.0 +psutil==7.1.0 PyGithub==2.3.0 Deprecated==1.2.14 wrapt==1.16.0 diff --git a/python/requirements-3.8.txt b/python/requirements-3.8.txt index dfed9c45..3abf69ab 100644 --- a/python/requirements-3.8.txt +++ b/python/requirements-3.8.txt @@ -1,18 +1,16 @@ humanize==4.10.0 -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 -PyGithub==2.4.0 - Deprecated==1.2.14 - wrapt==1.16.0 +junitparser==4.0.2 +lxml==6.0.2 +psutil==7.1.0 +PyGithub==2.8.1 PyJWT==2.9.0 - PyNaCl==1.5.0 + PyNaCl==1.6.0 cffi==1.17.1 - pycparser==2.22 - requests==2.32.3 - certifi==2024.8.30 - charset-normalizer==3.4.0 + pycparser==2.23 + requests==2.32.4 + certifi==2025.10.5 + charset-normalizer==3.4.3 idna==3.10 urllib3==2.2.3 - typing_extensions==4.12.2 + typing_extensions==4.13.2 urllib3==2.2.3 diff --git a/python/requirements-3.9.txt b/python/requirements-3.9.txt index 163f415b..1f04b164 100644 --- a/python/requirements-3.9.txt +++ b/python/requirements-3.9.txt @@ -1,18 +1,16 @@ -humanize==4.11.0 -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 -PyGithub==2.4.0 - Deprecated==1.2.14 - wrapt==1.16.0 - PyJWT==2.9.0 - PyNaCl==1.5.0 - cffi==1.17.1 - pycparser==2.22 - requests==2.32.3 - certifi==2024.8.30 - charset-normalizer==3.4.0 +humanize==4.13.0 +junitparser==4.0.2 +lxml==6.0.2 +psutil==7.1.0 +PyGithub==2.8.1 + PyNaCl==1.6.0 + cffi==2.0.0 + pycparser==2.23 + requests==2.32.5 + charset-normalizer==3.4.3 idna==3.10 - urllib3==2.2.3 - typing_extensions==4.12.2 - urllib3==2.2.3 + urllib3==2.5.0 + certifi==2025.10.5 + PyJWT==2.10.1 + typing_extensions==4.15.0 + urllib3==2.5.0 diff --git a/python/requirements-post-3.8.txt b/python/requirements-post-3.8.txt index b8b1cfc5..ff1d1b60 100644 --- a/python/requirements-post-3.8.txt +++ b/python/requirements-post-3.8.txt @@ -1,18 +1,16 @@ -humanize==4.11.0 -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 -PyGithub==2.4.0 - Deprecated==1.2.14 - wrapt==1.16.0 - PyJWT==2.9.0 - PyNaCl==1.5.0 - cffi==1.17.1 - pycparser==2.22 - requests==2.32.3 - certifi==2024.8.30 - charset-normalizer==3.4.0 +humanize==4.13.0 +junitparser==4.0.2 +lxml==6.0.2 +psutil==7.1.0 +PyGithub==2.8.1 + PyNaCl==1.6.0 + cffi==2.0.0 + pycparser==2.23 + requests==2.32.5 + charset-normalizer==3.4.3 idna==3.10 urllib3==2.5.0 - typing_extensions==4.12.2 - urllib3==2.5.0 + certifi==2025.10.5 + PyJWT==2.10.1 + typing_extensions==4.15.0 + urllib3==2.5.0 \ No newline at end of file diff --git a/python/requirements.txt b/python/requirements.txt index d81b3c2f..15edac45 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -1,8 +1,9 @@ humanize==4.6.0; python_version <= '3.7' humanize==4.10.0; python_version == '3.8' -humanize==4.11.0; python_version > '3.8' -junitparser==3.2.0 -lxml==5.3.0 -psutil==6.1.0 +humanize==4.13.0; python_version > '3.8' +junitparser==4.0.2 +lxml==5.4.0; python_version <= '3.7' +lxml==6.0.2; python_version > '3.7' +psutil==7.1.0 PyGithub==2.3.0; python_version <= '3.7' -PyGithub==2.4.0; python_version > '3.7' +PyGithub==2.8.1; python_version > '3.7' diff --git a/python/test/files/nunit/mstest/clicketyclackety.annotations b/python/test/files/nunit/mstest/clicketyclackety.annotations index 9c5961eb..a31832a0 100644 --- a/python/test/files/nunit/mstest/clicketyclackety.annotations +++ b/python/test/files/nunit/mstest/clicketyclackety.annotations @@ -5,23 +5,25 @@ 'status': 'completed', 'conclusion': 'failure', 'output': { - 'title': '10 fail, 12 pass in 0s', + 'title': '10 fail, 13 pass in 0s', 'summary': - '\u20071 files\u2004\u2003\u20078 suites\u2004\u2003\u20020s ⏱️\n22 ' - 'tests\u200312 ✅\u20030 💤\u200310 ❌\n23 runs\u200a\u200313 ✅\u20030 💤\u2003' - '10 ❌\n\nResults for commit commit s.\n\n' - '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/02MSw6AIAxEr' - '0JYu/CzMV7GENTYCGJKWRnvbiEo7Ppmpu+WG5jVy0l0jZA+ACUYGZaAisCdjC0jFxSrvv' - '9g9kHr+FklB1z1ft4UmDgpyYroMG8wnEk55Ps3lqAIE9e+FNQ67awFYsiX8LuSzwvzas/' - 'j4wAAAA==\n', + '23 tests\u2002\u2003\u200313 ✅\u2003\u20030s ⏱️\n\u20078 suites\u2003\u2003\u2007' + '0 💤\n\u20071 files\u2004\u2002\u2003\u200310 ❌\n\nResults for commit ' + 'commit s.\n\n' + '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMSw6AIAxEr' + '0JYu/CzMV6GENTYKGAKrIx3t+AH3PXNTN/BZ9gmxwfWVIy7AD5BTzAGlB6sIawJqfCxar' + 'sXhAtKxc8iWWEv92KWsMVJTiZEi88Gg/mU8f4Z7yALE5e+FJQ6ZbUGT/BczC2SnxdFoh1' + 'R4wAAAA==\n', 'annotations': [ { - 'path': '/', + 'path': 'MyProject.Tests.Real.UserInput.BakeDrawingCommandTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'BakeDrawings failed', + 'title': + 'BakeDrawings ' + '(MyProject.Tests.Real.UserInput.BakeDrawingCommandTests) failed', 'raw_details': 'System.InvalidOperationException : Assert.Equals should not be ' 'used. Use Assert.AreEqual instead.\n at ' @@ -30,24 +32,26 @@ '()' }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.UserInput.ProjectInitCommandTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'SilentRun failed', + 'title': + 'SilentRun (MyProject.Tests.Real.UserInput.ProjectInitCommandTests) ' + 'failed', 'raw_details': 'System.NullReferenceException : Object reference not set to an ' 'instance of an object.\n at ' 'MyProject.Tests.Real.UserInput.ProjectInitCommandTests.SilentRun()' }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.FlagTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'DiscardDrawingTests failed', + 'title': 'DiscardDrawingTests (MyProject.Tests.Real.FlagTests) failed', 'raw_details': "System.IO.DirectoryNotFoundException : Could not find a part of " "the path " @@ -63,83 +67,83 @@ "MyProject.Tests.Real.FlagTests.DiscardDrawingTests()" }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.FlagTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'LoadDrawingsEventFlagTests failed', + 'title': 'LoadDrawingsEventFlagTests (MyProject.Tests.Real.FlagTests) failed', 'raw_details': ' Expected: 3\n But was: 0\n at ' 'MyProject.Tests.Real.FlagTests.LoadDrawingsEventFlagTests()' }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.FlagTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'ResetProjectEventFlagTests failed', + 'title': 'ResetProjectEventFlagTests (MyProject.Tests.Real.FlagTests) failed', 'raw_details': 'System.NullReferenceException : Object reference not set to an ' 'instance of an object.\n at ' 'MyProject.Tests.Real.FlagTests.ResetProjectEventFlagTests()' }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.FlagTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'SetupLayersEventFlagTests failed', + 'title': 'SetupLayersEventFlagTests (MyProject.Tests.Real.FlagTests) failed', 'raw_details': "om.Exceptions.DocumentException : Document should be initlised, " "but isn't!\n at MyProject.Runtime.Events.SetupLayers.Execute()\n " " at MyProject.Tests.Real.FlagTests.SetupLayersEventFlagTests()" }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.FlagTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'SetupPipeEventFlagTests failed', + 'title': 'SetupPipeEventFlagTests (MyProject.Tests.Real.FlagTests) failed', 'raw_details': 'System.NullReferenceException : Object reference not set to an ' 'instance of an object.\n at ' 'MyProject.Tests.Real.FlagTests.SetupPipeEventFlagTests()' }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.RuntimeTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'DrawingConstants failed', + 'title': 'DrawingConstants (MyProject.Tests.Real.RuntimeTests) failed', 'raw_details': 'System.NullReferenceException : Object reference not set to an ' 'instance of an object.\n at ' 'MyProject.Tests.Real.RuntimeTests.DrawingConstants()' }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.RuntimeTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'FileConstants failed', + 'title': 'FileConstants (MyProject.Tests.Real.RuntimeTests) failed', 'raw_details': 'System.NullReferenceException : Object reference not set to an ' 'instance of an object.\n at ' 'MyProject.Tests.Real.RuntimeTests.FileConstants()' }, { - 'path': '/', + 'path': 'MyProject.Tests.Real.RuntimeTests', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/clicketyclackety.xml\u2003[took 0s]', - 'title': 'PluginConstants failed', + 'title': 'PluginConstants (MyProject.Tests.Real.RuntimeTests) failed', 'raw_details': "System.MissingMethodException : Method not found: 'System.Object " "MyProject.MyProjectPlugIn.get_Instance()'.\n at " @@ -150,20 +154,38 @@ 'start_line': 0, 'end_line': 0, 'annotation_level': 'notice', - 'message': 'There are 22 tests, see "Raw output" for the full list of tests.', - 'title': '22 tests found', + 'message': 'There are 23 tests, see "Raw output" for the full list of tests.', + 'title': '23 tests found', 'raw_details': - 'BakeDrawings\nDeleteMyProjectObjectEventFlagTests\n' - 'DiscardDrawingTests\nDisplayGraphicConstants\nDrawingConstants\n' - 'EventRegisterTests\nFileConstants\nLoadDrawingsEventFlagTests\n' - 'LoadedDrawings\nModifyNewObjectUniqueIdEventFlagTests\n' - 'MoveControlPointEventFlagTests\nObjectConstants\nPluginConstants\n' - 'ResetProjectEventFlagTests\nSetupLayersEventFlagTests\n' - 'SetupPipeEventFlagTests\nSilentRun\nTest\nUIPanelConstants\n' - 'UIPropertyConstants\nUpdateDrawingsPanelEventFlagTests\n' - 'UpdatePropertiesPanelEventFlagTests' + 'MyProject.Tests.Real.FlagTests ‑ ' + 'DeleteMyProjectObjectEventFlagTests\n' + 'MyProject.Tests.Real.FlagTests ‑ DiscardDrawingTests\n' + 'MyProject.Tests.Real.FlagTests ‑ LoadDrawingsEventFlagTests\n' + 'MyProject.Tests.Real.FlagTests ‑ ' + 'ModifyNewObjectUniqueIdEventFlagTests\n' + 'MyProject.Tests.Real.FlagTests ‑ MoveControlPointEventFlagTests\n' + 'MyProject.Tests.Real.FlagTests ‑ ResetProjectEventFlagTests\n' + 'MyProject.Tests.Real.FlagTests ‑ SetupLayersEventFlagTests\n' + 'MyProject.Tests.Real.FlagTests ‑ SetupPipeEventFlagTests\n' + 'MyProject.Tests.Real.FlagTests ‑ UpdateDrawingsPanelEventFlagTests\n' + 'MyProject.Tests.Real.FlagTests ‑ ' + 'UpdatePropertiesPanelEventFlagTests\n' + 'MyProject.Tests.Real.NewDocumentTests ‑ EventRegisterTests\n' + 'MyProject.Tests.Real.PipeTests ‑ Test\n' + 'MyProject.Tests.Real.RuntimeTests ‑ DisplayGraphicConstants\n' + 'MyProject.Tests.Real.RuntimeTests ‑ DrawingConstants\n' + 'MyProject.Tests.Real.RuntimeTests ‑ FileConstants\n' + 'MyProject.Tests.Real.RuntimeTests ‑ ObjectConstants\n' + 'MyProject.Tests.Real.RuntimeTests ‑ PluginConstants\n' + 'MyProject.Tests.Real.RuntimeTests ‑ UIPanelConstants\n' + 'MyProject.Tests.Real.RuntimeTests ‑ UIPropertyConstants\n' + 'MyProject.Tests.Real.SwitchingTests ‑ Test\n' + 'MyProject.Tests.Real.Tests.RuntimeConstants ‑ LoadedDrawings\n' + 'MyProject.Tests.Real.UserInput.BakeDrawingCommandTests ‑ ' + 'BakeDrawings\n' + 'MyProject.Tests.Real.UserInput.ProjectInitCommandTests ‑ SilentRun' } ] } } -] \ No newline at end of file +] diff --git a/python/test/files/nunit/mstest/clicketyclackety.junit-xml b/python/test/files/nunit/mstest/clicketyclackety.junit-xml index e9092560..d7b2aa68 100644 --- a/python/test/files/nunit/mstest/clicketyclackety.junit-xml +++ b/python/test/files/nunit/mstest/clicketyclackety.junit-xml @@ -16,76 +16,76 @@ - + at NUnit.Framework.Assert.Equals(Object a, Object b) at MyProject.Tests.Real.UserInput.BakeDrawingCommandTests.BakeDrawings() - + at MyProject.Tests.Real.UserInput.ProjectInitCommandTests.SilentRun() - - + + at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileSystemEnumerableIterator`1.CommonInit() at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost) at System.IO.Directory.GetFiles(String path) at MyProject.Tests.Real.FlagTests.DiscardDrawingTests() - + at MyProject.Tests.Real.FlagTests.LoadDrawingsEventFlagTests() - - - + + + at MyProject.Tests.Real.FlagTests.ResetProjectEventFlagTests() - + at MyProject.Runtime.Events.SetupLayers.Execute() at MyProject.Tests.Real.FlagTests.SetupLayersEventFlagTests() - + at MyProject.Tests.Real.FlagTests.SetupPipeEventFlagTests() - - + + - + - + - - + + at MyProject.Tests.Real.RuntimeTests.DrawingConstants() - + at MyProject.Tests.Real.RuntimeTests.FileConstants() - - + + at MyProject.Tests.Real.RuntimeTests.PluginConstants() - - + + - + - + diff --git a/python/test/files/nunit/mstest/clicketyclackety.results b/python/test/files/nunit/mstest/clicketyclackety.results index ebe15d2c..72977337 100644 --- a/python/test/files/nunit/mstest/clicketyclackety.results +++ b/python/test/files/nunit/mstest/clicketyclackety.results @@ -86,7 +86,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.UserInput.BakeDrawingCommandTests', test_name='BakeDrawings', result='failure', message='System.InvalidOperationException : Assert.Equals should not be used. ' @@ -101,7 +101,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.UserInput.ProjectInitCommandTests', test_name='SilentRun', result='failure', message='System.NullReferenceException : Object reference not set to an ' @@ -116,7 +116,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='DeleteMyProjectObjectEventFlagTests', result='success', message=None, @@ -129,7 +129,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='DiscardDrawingTests', result='failure', message="System.IO.DirectoryNotFoundException : Could not find a part of the " @@ -152,7 +152,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='LoadDrawingsEventFlagTests', result='failure', message=' Expected: 3\n But was: 0\n', @@ -165,7 +165,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='ModifyNewObjectUniqueIdEventFlagTests', result='success', message=None, @@ -178,7 +178,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='MoveControlPointEventFlagTests', result='success', message=None, @@ -191,7 +191,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='ResetProjectEventFlagTests', result='failure', message='System.NullReferenceException : Object reference not set to an ' @@ -205,7 +205,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='SetupLayersEventFlagTests', result='failure', message="om.Exceptions.DocumentException : Document should be initlised, but " @@ -220,7 +220,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='SetupPipeEventFlagTests', result='failure', message='System.NullReferenceException : Object reference not set to an ' @@ -234,7 +234,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='UpdateDrawingsPanelEventFlagTests', result='success', message=None, @@ -247,7 +247,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.FlagTests', test_name='UpdatePropertiesPanelEventFlagTests', result='success', message=None, @@ -260,7 +260,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.NewDocumentTests', test_name='EventRegisterTests', result='success', message=None, @@ -273,7 +273,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.PipeTests', test_name='Test', result='success', message=None, @@ -286,7 +286,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.RuntimeTests', test_name='DisplayGraphicConstants', result='success', message=None, @@ -299,7 +299,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.RuntimeTests', test_name='DrawingConstants', result='failure', message='System.NullReferenceException : Object reference not set to an ' @@ -313,7 +313,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.RuntimeTests', test_name='FileConstants', result='failure', message='System.NullReferenceException : Object reference not set to an ' @@ -327,7 +327,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.RuntimeTests', test_name='ObjectConstants', result='success', message=None, @@ -340,7 +340,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.RuntimeTests', test_name='PluginConstants', result='failure', message="System.MissingMethodException : Method not found: 'System.Object " @@ -354,7 +354,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.RuntimeTests', test_name='UIPanelConstants', result='success', message=None, @@ -367,7 +367,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.RuntimeTests', test_name='UIPropertyConstants', result='success', message=None, @@ -380,7 +380,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.SwitchingTests', test_name='Test', result='success', message=None, @@ -393,7 +393,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/clicketyclackety.xml', test_file=None, line=None, - class_name='', + class_name='MyProject.Tests.Real.Tests.RuntimeConstants', test_name='LoadedDrawings', result='success', message=None, @@ -403,4 +403,4 @@ publish.unittestresults.ParsedUnitTestResults( time=0.000986 ) ] -) \ No newline at end of file +) diff --git a/python/test/files/nunit/mstest/clicketyclackety.results.json b/python/test/files/nunit/mstest/clicketyclackety.results.json index cf004641..af9520d6 100644 --- a/python/test/files/nunit/mstest/clicketyclackety.results.json +++ b/python/test/files/nunit/mstest/clicketyclackety.results.json @@ -1,14 +1,14 @@ { - "title": "10 fail, 12 pass in 0s", - "summary": " 1 files   8 suites   0s ⏱️\n22 tests 12 ✅ 0 💤 10 ❌\n23 runs  13 ✅ 0 💤 10 ❌\n\nResults for commit commit s.\n", + "title": "10 fail, 13 pass in 0s", + "summary": "23 tests   13 ✅  0s ⏱️\n 8 suites   0 💤\n 1 files    10 ❌\n\nResults for commit commit s.\n", "conclusion": "failure", "stats": { "files": 1, "errors": [], "suites": 8, "duration": 0, - "tests": 22, - "tests_succ": 12, + "tests": 23, + "tests_succ": 13, "tests_skip": 0, "tests_fail": 10, "tests_error": 0, @@ -21,93 +21,93 @@ }, "annotations": [ { - "path": "/", + "path": "MyProject.Tests.Real.UserInput.BakeDrawingCommandTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "BakeDrawings failed", + "title": "BakeDrawings (MyProject.Tests.Real.UserInput.BakeDrawingCommandTests) failed", "raw_details": "System.InvalidOperationException : Assert.Equals should not be used. Use Assert.AreEqual instead.\n at NUnit.Framework.Assert.Equals(Object a, Object b)\n at MyProject.Tests.Real.UserInput.BakeDrawingCommandTests.BakeDrawings()" }, { - "path": "/", + "path": "MyProject.Tests.Real.UserInput.ProjectInitCommandTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "SilentRun failed", + "title": "SilentRun (MyProject.Tests.Real.UserInput.ProjectInitCommandTests) failed", "raw_details": "System.NullReferenceException : Object reference not set to an instance of an object.\n at MyProject.Tests.Real.UserInput.ProjectInitCommandTests.SilentRun()" }, { - "path": "/", + "path": "MyProject.Tests.Real.FlagTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "DiscardDrawingTests failed", + "title": "DiscardDrawingTests (MyProject.Tests.Real.FlagTests) failed", "raw_details": "System.IO.DirectoryNotFoundException : Could not find a part of the path 'C:\\Users\\USER\\actions-runner\\_work\\MyProject\\MyProject\\SC\\f4a8fa46-245d-4cd5-88c1-80fcfbda6369'.\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\n at System.IO.FileSystemEnumerableIterator`1.CommonInit()\n at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)\n at System.IO.Directory.GetFiles(String path)\n at MyProject.Tests.Real.FlagTests.DiscardDrawingTests()" }, { - "path": "/", + "path": "MyProject.Tests.Real.FlagTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "LoadDrawingsEventFlagTests failed", + "title": "LoadDrawingsEventFlagTests (MyProject.Tests.Real.FlagTests) failed", "raw_details": " Expected: 3\n But was: 0\n at MyProject.Tests.Real.FlagTests.LoadDrawingsEventFlagTests()" }, { - "path": "/", + "path": "MyProject.Tests.Real.FlagTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "ResetProjectEventFlagTests failed", + "title": "ResetProjectEventFlagTests (MyProject.Tests.Real.FlagTests) failed", "raw_details": "System.NullReferenceException : Object reference not set to an instance of an object.\n at MyProject.Tests.Real.FlagTests.ResetProjectEventFlagTests()" }, { - "path": "/", + "path": "MyProject.Tests.Real.FlagTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "SetupLayersEventFlagTests failed", + "title": "SetupLayersEventFlagTests (MyProject.Tests.Real.FlagTests) failed", "raw_details": "om.Exceptions.DocumentException : Document should be initlised, but isn't!\n at MyProject.Runtime.Events.SetupLayers.Execute()\n at MyProject.Tests.Real.FlagTests.SetupLayersEventFlagTests()" }, { - "path": "/", + "path": "MyProject.Tests.Real.FlagTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "SetupPipeEventFlagTests failed", + "title": "SetupPipeEventFlagTests (MyProject.Tests.Real.FlagTests) failed", "raw_details": "System.NullReferenceException : Object reference not set to an instance of an object.\n at MyProject.Tests.Real.FlagTests.SetupPipeEventFlagTests()" }, { - "path": "/", + "path": "MyProject.Tests.Real.RuntimeTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "DrawingConstants failed", + "title": "DrawingConstants (MyProject.Tests.Real.RuntimeTests) failed", "raw_details": "System.NullReferenceException : Object reference not set to an instance of an object.\n at MyProject.Tests.Real.RuntimeTests.DrawingConstants()" }, { - "path": "/", + "path": "MyProject.Tests.Real.RuntimeTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "FileConstants failed", + "title": "FileConstants (MyProject.Tests.Real.RuntimeTests) failed", "raw_details": "System.NullReferenceException : Object reference not set to an instance of an object.\n at MyProject.Tests.Real.RuntimeTests.FileConstants()" }, { - "path": "/", + "path": "MyProject.Tests.Real.RuntimeTests", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/clicketyclackety.xml [took 0s]", - "title": "PluginConstants failed", + "title": "PluginConstants (MyProject.Tests.Real.RuntimeTests) failed", "raw_details": "System.MissingMethodException : Method not found: 'System.Object MyProject.MyProjectPlugIn.get_Instance()'.\n at MyProject.Tests.Real.RuntimeTests.PluginConstants()" }, { @@ -115,9 +115,9 @@ "start_line": 0, "end_line": 0, "annotation_level": "notice", - "message": "There are 22 tests, see \"Raw output\" for the full list of tests.", - "title": "22 tests found", - "raw_details": "BakeDrawings\nDeleteMyProjectObjectEventFlagTests\nDiscardDrawingTests\nDisplayGraphicConstants\nDrawingConstants\nEventRegisterTests\nFileConstants\nLoadDrawingsEventFlagTests\nLoadedDrawings\nModifyNewObjectUniqueIdEventFlagTests\nMoveControlPointEventFlagTests\nObjectConstants\nPluginConstants\nResetProjectEventFlagTests\nSetupLayersEventFlagTests\nSetupPipeEventFlagTests\nSilentRun\nTest\nUIPanelConstants\nUIPropertyConstants\nUpdateDrawingsPanelEventFlagTests\nUpdatePropertiesPanelEventFlagTests" + "message": "There are 23 tests, see \"Raw output\" for the full list of tests.", + "title": "23 tests found", + "raw_details": "MyProject.Tests.Real.FlagTests ‑ DeleteMyProjectObjectEventFlagTests\nMyProject.Tests.Real.FlagTests ‑ DiscardDrawingTests\nMyProject.Tests.Real.FlagTests ‑ LoadDrawingsEventFlagTests\nMyProject.Tests.Real.FlagTests ‑ ModifyNewObjectUniqueIdEventFlagTests\nMyProject.Tests.Real.FlagTests ‑ MoveControlPointEventFlagTests\nMyProject.Tests.Real.FlagTests ‑ ResetProjectEventFlagTests\nMyProject.Tests.Real.FlagTests ‑ SetupLayersEventFlagTests\nMyProject.Tests.Real.FlagTests ‑ SetupPipeEventFlagTests\nMyProject.Tests.Real.FlagTests ‑ UpdateDrawingsPanelEventFlagTests\nMyProject.Tests.Real.FlagTests ‑ UpdatePropertiesPanelEventFlagTests\nMyProject.Tests.Real.NewDocumentTests ‑ EventRegisterTests\nMyProject.Tests.Real.PipeTests ‑ Test\nMyProject.Tests.Real.RuntimeTests ‑ DisplayGraphicConstants\nMyProject.Tests.Real.RuntimeTests ‑ DrawingConstants\nMyProject.Tests.Real.RuntimeTests ‑ FileConstants\nMyProject.Tests.Real.RuntimeTests ‑ ObjectConstants\nMyProject.Tests.Real.RuntimeTests ‑ PluginConstants\nMyProject.Tests.Real.RuntimeTests ‑ UIPanelConstants\nMyProject.Tests.Real.RuntimeTests ‑ UIPropertyConstants\nMyProject.Tests.Real.SwitchingTests ‑ Test\nMyProject.Tests.Real.Tests.RuntimeConstants ‑ LoadedDrawings\nMyProject.Tests.Real.UserInput.BakeDrawingCommandTests ‑ BakeDrawings\nMyProject.Tests.Real.UserInput.ProjectInitCommandTests ‑ SilentRun" } ], "check_url": "html", @@ -127,8 +127,8 @@ "errors": [], "suites": "8", "duration": "0", - "tests": "22", - "tests_succ": "12", + "tests": "23", + "tests_succ": "13", "tests_skip": "0", "tests_fail": "10", "tests_error": "0", @@ -140,4 +140,4 @@ "commit": "commit sha" } } -} \ No newline at end of file +} diff --git a/python/test/files/nunit/mstest/timewarpinc.annotations b/python/test/files/nunit/mstest/timewarpinc.annotations index 026cb302..1e7aabae 100644 --- a/python/test/files/nunit/mstest/timewarpinc.annotations +++ b/python/test/files/nunit/mstest/timewarpinc.annotations @@ -15,12 +15,14 @@ 'lFX4sNjl+hBZjfi0J0mE8w2uJ7Yqt7udoSN7LErUu6fYdAkBPzq+DXDXGDl7HdAAAA\n', 'annotations': [ { - 'path': '/', + 'path': 'MP.Tests.AssetValidatorTest', 'start_line': 0, 'end_line': 0, 'annotation_level': 'warning', 'message': 'mstest/timewarpinc.xml\u2003[took 2s]', - 'title': 'ValidateSceneContainer("Assets/Scenes/Grid/GridTest.unity") failed', + 'title': + 'ValidateSceneContainer("Assets/Scenes/Grid/GridTest.unity") ' + '(MP.Tests.AssetValidatorTest) failed', 'raw_details': 'Zenject.ZenjectException : Zenject Validation Failed! See errors ' 'below for details.\n at ' @@ -104,9 +106,11 @@ 'annotation_level': 'notice', 'message': 'There is 1 test, see "Raw output" for the name of the test.', 'title': '1 test found', - 'raw_details': 'ValidateSceneContainer("Assets/Scenes/Grid/GridTest.unity")' + 'raw_details': + 'MP.Tests.AssetValidatorTest ‑ ' + 'ValidateSceneContainer("Assets/Scenes/Grid/GridTest.unity")' } ] } } -] \ No newline at end of file +] diff --git a/python/test/files/nunit/mstest/timewarpinc.junit-xml b/python/test/files/nunit/mstest/timewarpinc.junit-xml index 81486b81..1fcead43 100644 --- a/python/test/files/nunit/mstest/timewarpinc.junit-xml +++ b/python/test/files/nunit/mstest/timewarpinc.junit-xml @@ -19,7 +19,7 @@ - + at Zenject.Internal.ZenUnityEditorUtil.ValidateCurrentSceneSetup () [0x0009c] in /github/workspace/Assets/ThirdParty/Zenject/Source/Editor/ZenUnityEditorUtil.cs:82 at MP.Tests.AssetValidatorTest.ValidateSceneContainer (System.String scenePath) [0x00009] in /github/workspace/Assets/Tests/EditorMode/AssetValidatorTest.cs:58 diff --git a/python/test/files/nunit/mstest/timewarpinc.results b/python/test/files/nunit/mstest/timewarpinc.results index 36df5f9b..0f9b101e 100644 --- a/python/test/files/nunit/mstest/timewarpinc.results +++ b/python/test/files/nunit/mstest/timewarpinc.results @@ -23,7 +23,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='mstest/timewarpinc.xml', test_file=None, line=None, - class_name='', + class_name='MP.Tests.AssetValidatorTest', test_name='ValidateSceneContainer("Assets/Scenes/Grid/GridTest.unity")', result='failure', message='Zenject.ZenjectException : Zenject Validation Failed! See errors ' @@ -100,4 +100,4 @@ publish.unittestresults.ParsedUnitTestResults( time=2.117365 ) ] -) \ No newline at end of file +) diff --git a/python/test/files/nunit/mstest/timewarpinc.results.json b/python/test/files/nunit/mstest/timewarpinc.results.json index 6d8b71e8..27d40da5 100644 --- a/python/test/files/nunit/mstest/timewarpinc.results.json +++ b/python/test/files/nunit/mstest/timewarpinc.results.json @@ -21,12 +21,12 @@ }, "annotations": [ { - "path": "/", + "path": "MP.Tests.AssetValidatorTest", "start_line": 0, "end_line": 0, "annotation_level": "warning", "message": "mstest/timewarpinc.xml [took 2s]", - "title": "ValidateSceneContainer(\"Assets/Scenes/Grid/GridTest.unity\") failed", + "title": "ValidateSceneContainer(\"Assets/Scenes/Grid/GridTest.unity\") (MP.Tests.AssetValidatorTest) failed", "raw_details": "Zenject.ZenjectException : Zenject Validation Failed! See errors below for details.\n at Zenject.Internal.ZenUnityEditorUtil.ValidateCurrentSceneSetup () [0x0009c] in /github/workspace/Assets/ThirdParty/Zenject/Source/Editor/ZenUnityEditorUtil.cs:82\n at MP.Tests.AssetValidatorTest.ValidateSceneContainer (System.String scenePath) [0x00009] in /github/workspace/Assets/Tests/EditorMode/AssetValidatorTest.cs:58\n at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)\n at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in :0\nAssertionException: Could not find a tilemap tagged with LevelBounds.\nAssertion failure. Value was Null\nExpected: Value was not Null\nUnityEngine.Assertions.Assert.Fail (System.String message, System.String userMessage) (at /home/bokken/buildslave/unity/build/Runtime/Export/Assertions/Assert/AssertBase.cs:29)\nUnityEngine.Assertions.Assert.IsNotNull (UnityEngine.Object value, System.String message) (at /home/bokken/buildslave/unity/build/Runtime/Export/Assertions/Assert/AssertNull.cs:58)\nUnityEngine.Assertions.Assert.IsNotNull[T] (T value, System.String message) (at /home/bokken/buildslave/unity/build/Runtime/Export/Assertions/Assert/AssertNull.cs:46)\nMP.Gameplay.Level.LevelInstaller.InstallBindings () (at Assets/Scripts/Gameplay/Level/LevelInstaller.cs:30)\nZenject.CompositeMonoInstaller.InstallBindings () (at Assets/ThirdParty/Zenject/Source/Install/CompositeMonoInstaller.cs:25)\nZenject.Context.InstallInstallers (System.Collections.Generic.List`1[T] normalInstallers, System.Collections.Generic.List`1[T] normalInstallerTypes, System.Collections.Generic.List`1[T] scriptableObjectInstallers, System.Collections.Generic.List`1[T] installers, System.Collections.Generic.List`1[T] installerPrefabs) (at Assets/ThirdParty/Zenject/Source/Install/Contexts/Context.cs:218)\nZenject.Context.InstallInstallers () (at Assets/ThirdParty/Zenject/Source/Install/Contexts/Context.cs:139)\nZenject.SceneContext.InstallBindings (System.Collections.Generic.List`1[T] injectableMonoBehaviours) (at Assets/ThirdParty/Zenject/Source/Install/Contexts/SceneContext.cs:346)\nZenject.SceneContext.Install () (at Assets/ThirdParty/Zenject/Source/Install/Contexts/SceneContext.cs:265)\nZenject.SceneContext.Validate () (at Assets/ThirdParty/Zenject/Source/Install/Contexts/SceneContext.cs:121)\nZenject.Internal.ZenUnityEditorUtil.ValidateCurrentSceneSetup () (at Assets/ThirdParty/Zenject/Source/Editor/ZenUnityEditorUtil.cs:67)\nUnityEngine.Debug:LogException(Exception)\nModestTree.Log:ErrorException(Exception) (at Assets/ThirdParty/Zenject/Source/Internal/Log.cs:60)\nZenject.Internal.ZenUnityEditorUtil:ValidateCurrentSceneSetup() (at Assets/ThirdParty/Zenject/Source/Editor/ZenUnityEditorUtil.cs:72)\nMP.Tests.AssetValidatorTest:ValidateSceneContainer(String) (at Assets/Tests/EditorMode/AssetValidatorTest.cs:58)\nSystem.Reflection.MethodBase:Invoke(Object, Object[])\nNUnit.Framework.Internal.Reflect:InvokeMethod(MethodInfo, Object, Object[])\nNUnit.Framework.Internal.MethodWrapper:Invoke(Object, Object[])\nNUnit.Framework.Internal.Commands.TestMethodCommand:RunNonAsyncTestMethod(ITestExecutionContext)\nNUnit.Framework.Internal.Commands.TestMethodCommand:RunTestMethod(ITestExecutionContext)\nNUnit.Framework.Internal.Commands.TestMethodCommand:Execute(ITestExecutionContext)\nUnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:359)" }, { @@ -36,7 +36,7 @@ "annotation_level": "notice", "message": "There is 1 test, see \"Raw output\" for the name of the test.", "title": "1 test found", - "raw_details": "ValidateSceneContainer(\"Assets/Scenes/Grid/GridTest.unity\")" + "raw_details": "MP.Tests.AssetValidatorTest ‑ ValidateSceneContainer(\"Assets/Scenes/Grid/GridTest.unity\")" } ], "check_url": "html", @@ -59,4 +59,4 @@ "commit": "commit sha" } } -} \ No newline at end of file +} diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-issue17521.exception b/python/test/files/nunit/nunit3/jenkins/NUnit-issue17521.exception index 9ef72eae..216557d9 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-issue17521.exception +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-issue17521.exception @@ -1 +1 @@ -ParseError: file='files/nunit/nunit3/jenkins/NUnit-issue17521.xml', message='Char 0x0 out of allowed range, line 33, column 16 (NUnit-issue17521.xml, line 33)', line=None, column=None, exception=XMLSyntaxError('Char 0x0 out of allowed range, line 33, column 16') \ No newline at end of file +ParseError: file='files/nunit/nunit3/jenkins/NUnit-issue17521.xml', message='Invalid character: Char 0x0 out of allowed range\n, line 33, column 16 (NUnit-issue17521.xml, line 33)', line=None, column=None, exception=XMLSyntaxError('Invalid character: Char 0x0 out of allowed range\n, line 33, column 16') \ No newline at end of file diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.annotations b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.annotations index ca09af99..4f9a1d6d 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.annotations +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.annotations @@ -24,7 +24,7 @@ 'There is 1 skipped test, see "Raw output" for the name of the ' 'skipped test.', 'title': '1 skipped test found', - 'raw_details': 'AddTwoNumbers' + 'raw_details': 'Automation.Features.CMFeature ‑ AddTwoNumbers' }, { 'path': '.github', @@ -34,10 +34,11 @@ 'message': 'There are 2 tests, see "Raw output" for the full list of tests.', 'title': '2 tests found', 'raw_details': - 'AddTwoNumbers\n' + 'Automation.Features.CMFeature ‑ AddTwoNumbers\n' + 'Automation.Features.SubFeature ‑ ' 'SubSmokeTest("Geo","Geonw","dev1234567",System.String[])' } ] } } -] \ No newline at end of file +] diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.junit-xml b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.junit-xml index 95adb0c3..f693a7e4 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.junit-xml +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.junit-xml @@ -9,7 +9,7 @@ - + Given I have entered 50 into the calculator @@ -51,7 +51,7 @@ public void ThenTheResultShouldBeOnTheScreen(int p0) - + Given I have an active Sub user Geo with username Geonw and password dev1234567 done: LoginSteps.GivenIHaveAnActiveSubUserWithUsernameAndPassword("Geo", "Geonw", "dev1234567") (0.0s) And he is on Sub login page diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.results b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.results index f61b5ee1..5b638a5a 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.results +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.results @@ -32,7 +32,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue33493.xml', test_file=None, line=None, - class_name='', + class_name='Automation.Features.CMFeature', test_name='AddTwoNumbers', result='skipped', message='No matching step definition found for one or more steps.\nusing ' @@ -72,7 +72,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue33493.xml', test_file=None, line=None, - class_name='', + class_name='Automation.Features.SubFeature', test_name='SubSmokeTest("Geo","Geonw","dev1234567",System.String[])', result='success', message=None, @@ -89,4 +89,4 @@ publish.unittestresults.ParsedUnitTestResults( time=6.40203 ) ] -) \ No newline at end of file +) diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.results.json b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.results.json index cb6c92bf..b64cb032 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.results.json +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.results.json @@ -27,7 +27,7 @@ "annotation_level": "notice", "message": "There is 1 skipped test, see \"Raw output\" for the name of the skipped test.", "title": "1 skipped test found", - "raw_details": "AddTwoNumbers" + "raw_details": "Automation.Features.CMFeature ‑ AddTwoNumbers" }, { "path": ".github", @@ -36,7 +36,7 @@ "annotation_level": "notice", "message": "There are 2 tests, see \"Raw output\" for the full list of tests.", "title": "2 tests found", - "raw_details": "AddTwoNumbers\nSubSmokeTest(\"Geo\",\"Geonw\",\"dev1234567\",System.String[])" + "raw_details": "Automation.Features.CMFeature ‑ AddTwoNumbers\nAutomation.Features.SubFeature ‑ SubSmokeTest(\"Geo\",\"Geonw\",\"dev1234567\",System.String[])" } ], "check_url": "html", @@ -59,4 +59,4 @@ "commit": "commit sha" } } -} \ No newline at end of file +} diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-issue44527.results b/python/test/files/nunit/nunit3/jenkins/NUnit-issue44527.results index 1b9f3345..ae165d15 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-issue44527.results +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-issue44527.results @@ -1700,7 +1700,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._My_Requests.Grid.GridValidation', test_name='UI_MyTask_MR_Grid_GridViewValidation(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -1766,7 +1766,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._My_Requests.Grid.GridValidation', test_name='UI_MyTask_MR_Grid_Paging(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -1799,7 +1799,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._My_Requests.Paging.PagingValidation', test_name='UI_MyTasks_MR_Paging_ShowPerPage(True,"chrome","/#/tasks/access-' 'request/overview")', result='failure', @@ -1865,7 +1865,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._Owner_Election.Grid.GridValidation', test_name='UI_MyTask_MR_Grid_Paging(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -1931,7 +1931,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._Owner_Election.Grid.GridValidation', test_name='UI_MyTask_OE_Grid_GridViewValidation(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -1964,7 +1964,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._Owner_Election.Paging.' + 'PagingValidation', test_name='UI_MyTasks_OE_Paging_ShowPerPage("/#/tasks/owners-election/overview")', result='success', message=None, @@ -1977,7 +1978,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._Owner_Election.Paging.' + 'PagingValidation', test_name='UI_MyTasks_OE_ViewOwnersElection("/#/tasks/owners-election/overview")', result='failure', message='System.InvalidOperationException : Session [(null externalkey)] not ' @@ -2013,7 +2015,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._Owner_Election.Progress.' + 'ProgressValidation', test_name='UI_MyTask_MR_Progress_Approve(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -2079,7 +2082,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks._Owner_Election.Progress.' + 'ProgressValidation', test_name='UI_MyTask_MR_Progress_Reject(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -2112,7 +2116,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Approve_All.ApproveAll', test_name='UI_MyTask_AC_ACIS_BulkActions_ApproveAll_AddCommentNo_TC2688("/#/' 'tasks/access-certification/overview")', result='success', @@ -2126,7 +2131,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Approve_All.ApproveAll', test_name='UI_MyTask_AC_ACIS_BulkActions_ApproveAll_AddCommentYes_TC2689("/#/' 'tasks/access-certification/overview")', result='failure', @@ -2160,7 +2166,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Approve_All.ApproveAll', test_name='UI_MyTask_AC_ACIS_BulkActions_ApproveAll_CommittedRecoredNotAffected_' 'TC2691("/#/tasks/access-certification/overview")', result='failure', @@ -2195,7 +2202,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Approve_All.ApproveAll', test_name='UI_MyTask_AC_ACIS_BulkActions_ApproveAll_WithExistingSaved_TC2690("/#' '/tasks/access-certification/overview")', result='failure', @@ -2229,7 +2237,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Browsers.Browsers', test_name='UI_MyTask_AC_ACIS_BulkActions_Browsers_Chrome_TC2692("/#/tasks/' 'access-certification/overview")', result='failure', @@ -2249,7 +2258,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Clear_All.ClearAll', test_name='UI_MyTask_AC_ACIS_BulkActions_ClearAll_ApproveAllNo_TC2707("/#/tasks/' 'access-certification/overview")', result='failure', @@ -2313,7 +2323,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Clear_All.ClearAll', test_name='UI_MyTask_AC_ACIS_BulkActions_ClearAll_CommittedRecoredNotAffected_TC' '2708("/#/tasks/access-certification/overview")', result='failure', @@ -2347,7 +2358,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Clear_All.ClearAll', test_name='UI_MyTask_AC_ACIS_BulkActions_RejectAll_AddCommentNo_TC2705("/#/' 'tasks/access-certification/overview")', result='failure', @@ -2381,7 +2393,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Clear_All.ClearAll', test_name='UI_MyTask_AC_ACIS_BulkActions_RejectAll_AddCommentYes_TC2706("/#/' 'tasks/access-certification/overview")', result='failure', @@ -2415,7 +2428,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.' + 'Examine_Text_and_Layout.ExaminTextAndLayout', test_name='UI_MyTask_AC_ACIS_BulkActions_ExamineTextAndLayout_ApproveAllSelectio' 'n_TC2710("/#/tasks/access-certification/overview")', result='success', @@ -2429,7 +2444,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.' + 'Examine_Text_and_Layout.ExaminTextAndLayout', test_name='UI_MyTask_AC_ACIS_BulkActions_ExamineTextAndLayout_ClearAllSelection_' 'TC2712("/#/tasks/access-certification/overview")', result='failure', @@ -2465,7 +2482,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.' + 'Examine_Text_and_Layout.ExaminTextAndLayout', test_name='UI_MyTask_AC_ACIS_BulkActions_ExamineTextAndLayout_MainMenu_TC2709("/' '#/tasks/access-certification/overview")', result='failure', @@ -2501,7 +2520,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.' + 'Examine_Text_and_Layout.ExaminTextAndLayout', test_name='UI_MyTask_AC_ACIS_BulkActions_ExamineTextAndLayout_RejectAllSelection' '_TC2711("/#/tasks/access-certification/overview")', result='failure', @@ -2537,7 +2558,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Load.Load', test_name='UI_MyTask_AC_ACIS_BulkActions_ExamineTextAndLayout_MainMenu_TC2713("/' '#/tasks/access-certification/overview")', result='failure', @@ -2572,7 +2594,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Load.Load', test_name='UI_MyTask_AC_ACIS_BulkActions_ExamineTextAndLayout_MainMenu_TC2714("/' '#/tasks/access-certification/overview")', result='failure', @@ -2606,7 +2629,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Reject_All.ApproveAll', test_name='UI_MyTask_AC_ACIS_BulkActions_RejectAll_AddCommentNo_TC2715("/#/' 'tasks/access-certification/overview")', result='failure', @@ -2641,7 +2665,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Reject_All.ApproveAll', test_name='UI_MyTask_AC_ACIS_BulkActions_RejectAll_AddCommentYes_TC2716("/#/' 'tasks/access-certification/overview")', result='failure', @@ -2675,7 +2700,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Reject_All.ApproveAll', test_name='UI_MyTask_AC_ACIS_BulkActions_RejectAll_CommittedRecoredNotAffected_T' 'C2718("/#/tasks/access-certification/overview")', result='failure', @@ -2710,7 +2736,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Reject_All.ApproveAll', test_name='UI_MyTask_AC_ACIS_BulkActions_RejectAll_WithExistingSaved_TC2717("/#/' 'tasks/access-certification/overview")', result='failure', @@ -2744,7 +2771,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Saving.Saving', test_name='UI_MyTask_AC_ACIS_BulkActions_Saving_FailesToSaveDueToDatabaseTimeout' '_TC2720("/#/tasks/access-certification/overview")', result='success', @@ -2758,7 +2786,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Saving.Saving', test_name='UI_MyTask_AC_ACIS_BulkActions_Saving_FailesToSaveDueToNetworkDisconne' 'ct_2721("/#/tasks/access-certification/overview")', result='success', @@ -2772,7 +2801,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Bulk_Acions.Saving.Saving', test_name='UI_MyTask_AC_ACIS_BulkActions_Saving_Saving_IsSynchronous_NoOtherActi' 'onCanBeTaken_2722("/#/tasks/access-certification/overview")', result='failure', @@ -2807,7 +2837,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Approve_All.' + 'Graph.ApproveAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_EntireColumApproveAll_TC2' '741("/#/tasks/access-certification/overview")', result='failure', @@ -2858,7 +2890,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Approve_All.' + 'Graph.ApproveAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingApprovedApproveAll' '_TC11159("/#/tasks/access-certification/overview")', result='failure', @@ -2894,7 +2928,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Approve_All.' + 'Graph.ApproveAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingForActionApproveAl' 'l_TC2744("/#/tasks/access-certification/overview")', result='failure', @@ -2930,7 +2966,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Approve_All.' + 'Graph.ApproveAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingRejectApproveAll_T' 'C11160("/#/tasks/access-certification/overview")', result='failure', @@ -2966,7 +3004,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Clear_All.' + 'Graph.ClearAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_EntireColumClearAll_TC274' '9("/#/tasks/access-certification/overview")', result='failure', @@ -3017,7 +3057,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Clear_All.' + 'Graph.ClearAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingApprovedClearAll_T' 'C2750("/#/tasks/access-certification/overview")', result='failure', @@ -3053,7 +3095,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Clear_All.' + 'Graph.ClearAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingForActionClearAll_' 'TC2752("/#/tasks/access-certification/overview")', result='failure', @@ -3089,7 +3133,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Clear_All.' + 'Graph.ClearAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingRejectedClearAll_T' 'C2751("/#/tasks/access-certification/overview")', result='failure', @@ -3125,7 +3171,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Column_Filtering.Filter_further_by.Filter_By.FilterBy', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_ColumnFiltering_FilterFurtherBy' '_FilterBy_AllPossibleFields_TC2771("/#/tasks/access-certification/' 'overview")', @@ -3178,7 +3226,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Column_Filtering.Filter_further_by.Filter_By.FilterBy', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_ColumnFiltering_FilterFurtherBy' '_FilterBy_OneColumnOutOfManyWithAlreadyExistingFilters_TC2768("/#/' 'tasks/access-certification/overview")', @@ -3216,7 +3266,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Column_Filtering.Filter_further_by.Filter_By.FilterBy', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_ColumnFiltering_FilterFurtherBy' '_FilterBy_OneColumnOutOfManyWithNoExistingFilters_TC2767("/#/tasks/' 'access-certification/overview")', @@ -3254,7 +3306,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Entire_Column.EntireColumn', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_EntireColum_WithOnlyPendi' 'ngForAction_TC2753("/#/tasks/access-certification/overview")', result='failure', @@ -3305,7 +3359,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Entire_Column.EntireColumn', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_EntireColum_WithPendingFo' 'rActionAndUncommittedApproved_TC2754("/#/tasks/access-certification/' 'overview")', @@ -3342,7 +3398,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Entire_Column.EntireColumn', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_EntireColum_WithPendingFo' 'rActionAndUncommittedReject_TC2755("/#/tasks/access-certification/' 'overview")', @@ -3379,7 +3437,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Entire_Column.EntireColumn', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_WithAllCommitted_TC2757TB' 'D("/#/tasks/access-certification/overview")', result='success', @@ -3393,7 +3453,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Entire_Column.EntireColumn', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_WithPendingForActionAppro' 'vedCommittedAndRejectedCommitted_TC2758("/#/tasks/access-' 'certification/overview")', @@ -3430,7 +3492,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.' + 'Entire_Column.EntireColumn', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_WithUncommittedApprovedAn' 'dUncommittedReject_TC2756("/#/tasks/access-certification/overview")', result='failure', @@ -3466,7 +3530,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Menus.Menus', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Menus_ColumnEntireColumn_TC7937' '_TC7927("/#/tasks/access-certification/overview")', result='failure', @@ -3516,7 +3581,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Menus.Menus', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Menus_ColumnPendingAcions_TC793' '8("/#/tasks/access-certification/overview")', result='failure', @@ -3550,7 +3616,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Menus.Menus', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Menus_FilterFurtherBy_TC7939("/' '#/tasks/access-certification/overview")', result='failure', @@ -3584,7 +3651,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Menus.Menus', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Menus_TakeActionOn_TC7936("/#/' 'tasks/access-certification/overview")', result='failure', @@ -3618,7 +3686,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Reject_All.' + 'Graph.RejectAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_EntireColumRejectAll_TC27' '63("/#/tasks/access-certification/overview")', result='failure', @@ -3669,7 +3739,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Reject_All.' + 'Graph.RejectAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingApprovedRejectAll_' 'TC2765("/#/tasks/access-certification/overview")', result='failure', @@ -3705,7 +3777,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Reject_All.' + 'Graph.RejectAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingForActionRejectAll' '_TC2764("/#/tasks/access-certification/overview")', result='failure', @@ -3741,7 +3815,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Chart_Menu.Reject_All.' + 'Graph.RejectAllGraph', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_Graph_PendingRejectRejectAll_TC' '2766("/#/tasks/access-certification/overview")', result='failure', @@ -3777,7 +3853,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Look_And_Feel.' + 'LookAndFeel', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_LookAndFeel_AllColumnsAvailable' '_TC2793("/#/tasks/access-certification/overview")', result='failure', @@ -3827,7 +3905,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Look_And_Feel.' + 'LookAndFeel', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_LookAndFeel_LongNameGetsTC2795(' '"/#/tasks/access-certification/overview")', result='failure', @@ -3862,7 +3942,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Look_And_Feel.' + 'LookAndFeel', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_LookAndFeel_TableViewTC2799("/#' '/tasks/access-certification/overview")', result='failure', @@ -3896,7 +3978,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Look_And_Feel.' + 'LookAndFeel', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_LookAndFeel_TextAndColorsTC2794' '("/#/tasks/access-certification/overview")', result='failure', @@ -3931,7 +4015,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Look_And_Feel.' + 'LookAndFeel', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_LookAndFeel_ToolTipTC2796_TC277' '2("/#/tasks/access-certification/overview")', result='failure', @@ -3966,7 +4052,9 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.' + 'Access_Certification_Inner_Screen.Chart_View.Look_And_Feel.' + 'LookAndFeel', test_name='UI_MyTask_AC_ACIS_ChartView_ChartMenu_LookAndFeel_ToolTipTC7926("/#/' 'tasks/access-certification/overview")', result='failure', @@ -4000,7 +4088,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Filters.' + 'FiltersValidation', test_name='UI_MyTask_AC_FiltersValidation(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4014,7 +4103,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Grid.' + 'GridValidation', test_name='UI_MyTask_AC_DataGrid_DataDisplay_TC2101(True,"chrome","/#/tasks/' 'access-certification/overview")', result='failure', @@ -4028,7 +4118,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Grid.' + 'GridValidation', test_name='UI_MyTask_AC_DataGrid_Header_TC2100(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4042,7 +4133,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Grid.' + 'GridValidation', test_name='UI_MyTask_AC_DataGrid_Navigation_TC2099(True,"chrome","/#/tasks/' 'access-certification/overview")', result='failure', @@ -4056,7 +4148,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Grid.' + 'GridValidation', test_name='UI_MyTask_AC_DataGrid_Paging_TC2102(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4070,7 +4163,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Grid.' + 'GridValidation', test_name='UI_MyTask_AC_Grid_Grid_Validation(True,"chrome","#/tasks/access-' 'certification/overview")', result='failure', @@ -4084,7 +4178,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Grid.' + 'GridValidation', test_name='UI_MyTask_AC_TwoUsersTwoApplicationsValidation(True,"chrome","/#/' 'tasks/access-certification/overview")', result='failure', @@ -4098,7 +4193,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Paging.' + 'PagingValidation', test_name='UI_MyTasks_AR_Paging_ShowPerPage(True,"chrome","/#/tasks/access-' 'request/overview")', result='failure', @@ -4112,7 +4208,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Progress.' + 'ProgressValidation', test_name='UI_MyTask_AC_Progress_Approve(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4126,7 +4223,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Certification.Progress.' + 'ProgressValidation', test_name='UI_MyTask_AC_Progress_Reject(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4140,7 +4238,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Request.Filters.' + 'FiltersValidation', test_name='UI_MyTask_AR_Filters_FilterLayout(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4206,7 +4305,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Request.Filters.' + 'FiltersValidation', test_name='UI_MyTask_AR_Filters_FiltersFunctionality(True,"chrome","/#/tasks/' 'access-request/overview")', result='failure', @@ -4239,7 +4339,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Request.Grid.GridValidation', test_name='UI_MyTask_AR_Grid_FilterVAlidates(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4305,7 +4405,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Request.Grid.GridValidation', test_name='UI_MyTask_AR_Grid_Paging(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4338,7 +4438,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Request.Paging.' + 'PagingValidation', test_name='UI_MyTasks_AR_Paging_ShowPerPage(True,"chrome","/#/tasks/access-' 'request/overview")', result='failure', @@ -4404,7 +4505,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Request.Progress.' + 'ProgressValidation', test_name='UI_MyTask_AR_Progress_Approve(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4470,7 +4572,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Access_Request.Progress.' + 'ProgressValidation', test_name='UI_MyTask_AR_Progress_Reject(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4503,7 +4606,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Compliance_Control.Grid.' + 'GridValidation', test_name='UI_MyTask_CC_Filters_FilterVAlidates(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4569,7 +4673,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Compliance_Control.Grid.' + 'GridValidation', test_name='UI_MyTask_CC_Grid_Paging(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4602,7 +4707,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Compliance_Control.Paging.' + 'PagingValidation', test_name='UI_MyTasks_CC_Paging_ShowPerPage(True,"chrome","/#/tasks/access-' 'request/overview")', result='failure', @@ -4668,7 +4774,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Compliance_Control.Progress.' + 'ProgressValidation', test_name='UI_MyTask_CC_Progress_Approve(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4734,7 +4841,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.Compliance_Control.Progress.' + 'ProgressValidation', test_name='UI_MyTask_CC_Progress_Reject(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4767,7 +4875,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.MyRequest.Progress.ProgressValidation', test_name='UI_MyTask_MR_Progress_Approve(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4833,7 +4941,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks.MyRequest.Progress.ProgressValidation', test_name='UI_MyTask_MR_Progress_Reject(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4866,7 +4974,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks_Compliance_Control.Filters.' + 'FiltersValidation', test_name='UI_MyTask_CC_Filters_FilterLayout(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -4932,7 +5041,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks_Compliance_Control.Filters.' + 'FiltersValidation', test_name='UI_MyTask_CC_Filters_FiltersFunctionality(True,"chrome","/#/tasks/' 'access-request/overview")', result='failure', @@ -4965,7 +5075,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks_My_Requests.Filters.FiltersValidation', test_name='UI_MyTask_MR_Filters_FilterLayout(True,"chrome","/#/tasks/access-' 'certification/overview")', result='failure', @@ -5031,7 +5141,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.My_Tasks_My_Requests.Filters.FiltersValidation', test_name='UI_MyTask_MR_Filters_FiltersFunctionality(True,"chrome","/#/tasks/' 'access-request/overview")', result='failure', @@ -5064,7 +5174,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionAddAccountsFromSearch_TC7466(True,"en","1","chrome","' '/#/settings/general-settings")', result='failure', @@ -5130,7 +5240,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionBulkActionsCoverage_TC7465(True,"en","1","chrome","/#' '/settings/general-settings")', result='failure', @@ -5163,7 +5273,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionBulkUploadCoverage_TC7467_TC7468(True,"en","1","' 'chrome","/#/settings/general-settings")', result='failure', @@ -5196,7 +5306,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionBulkUploadDownloadSampleFile_TC7464(True,"en","1","' 'chrome","/#/settings/general-settings")', result='failure', @@ -5230,7 +5340,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionColumns_TC7474(True,"en","1","chrome","/#/settings/' 'general-settings")', result='failure', @@ -5263,7 +5373,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionGridCoverage_TC7465(True,"en","1","chrome","/#/' 'settings/general-settings","u0g793,u1g1,u1g792,u1g802,u2g399,u2g8..."' ')', @@ -5297,7 +5407,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionLoadSameAccountTwice_TC7473(True,"en","1","chrome","/' '#/settings/general-settings")', result='failure', @@ -5330,7 +5440,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionNonCsvFormat_TC7472(True,"en","1","chrome","/#/' 'settings/general-settings")', result='failure', @@ -5363,7 +5473,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionPaginationCoverage_TC7471(True,"en","1","chrome","/#/' 'settings/general-settings","u0g791,u0g801,u1g791,u1g801,u2g791,u2..."' ')', @@ -5398,7 +5508,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionRemoveAccounts_TC7470(True,"en","1","chrome","/#/' 'settings/general-settings")', result='failure', @@ -5431,7 +5541,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionScreenOverviewLook_TC7465(True,"en","1","chrome","/#/' 'settings/general-settings")', result='failure', @@ -5464,7 +5574,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionSearchCurrentExcludedAccounts_TC7475(True,"en","1","' 'chrome","/#/settings/general-settings")', result='failure', @@ -5498,7 +5608,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Alert_Exclusions.AlertExclusions', test_name='UIAlertExclusionShowPerPageCoverage_TC7465(True,"en","1","chrome","/#' '/settings/general-settings")', result='failure', @@ -5531,7 +5641,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionAddAccountsFromSearch_TC3411(True,"en","1","' 'chrome","/#/settings/general-settings")', result='failure', @@ -5598,7 +5709,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionBulkActionsCoverage_TC7554_TC3415(True,"en","1","' 'chrome","/#/settings/general-settings")', result='failure', @@ -5632,7 +5744,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionBulkUploadCoverage_TC3412_TC3413(True,"en","1","' 'chrome","/#/settings/general-settings")', result='failure', @@ -5666,7 +5779,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionColumns_TC3419(True,"en","1","chrome","/#/' 'settings/general-settings")', result='failure', @@ -5699,7 +5813,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionGridCoverage_TC7554(True,"en","1","chrome","/#/' 'settings/general-settings","u0g793,u1g1,u1g792,u1g802,u2g399,u2g8..."' ')', @@ -5734,7 +5849,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionLoadSameAccountTwice_TC3418(True,"en","1","' 'chrome","/#/settings/general-settings")', result='failure', @@ -5768,7 +5884,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionNonCsvFormat_TC3417(True,"en","1","chrome","/#/' 'settings/general-settings")', result='failure', @@ -5801,7 +5918,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionPaginationCoverage_TC7554_TC3415(True,"en","1","' 'chrome","/#/settings/general-settings","u0g106,u0g115,u0g124,u0g133,' 'u0g142,u0...")', @@ -5836,7 +5954,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionSearchCurrentExcludedAccounts_TC3420(True,"en","' '1","chrome","/#/settings/general-settings")', result='failure', @@ -5870,7 +5989,8 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Data_Owner_Exclusions.' + 'DataOwnerExclusions', test_name='UIDataOwnerExclusionShowPerPageCoverage_TC7554(True,"en","1","chrome"' ',"/#/settings/general-settings")', result='failure', @@ -5904,7 +6024,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Logical_Mapped_Path.Settings.Settings', test_name='UIGeneralSettingsAllowPhysicalPath_TC10766(True,"1","abcd","chrome","' 'en","user,ra_user","crowdSource,whiteops","user","is_administrator","' '/#/settings/general-settings")', @@ -5973,7 +6093,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Logical_Mapped_Path.Settings.Settings', test_name='UIGeneralSettingsDataDisplay_TC10898(True,"1","abcd","chrome","en","' 'user,ra_user","crowdSource,whiteops","user","is_administrator","/#/' 'settings/general-settings")', @@ -6009,7 +6129,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Logical_Mapped_Path.Settings.Settings', test_name='UIGeneralSettingsExcludeAdministrator_TC10765(True,"1","abcd","' 'chrome","en","user,ra_user","crowdSource,whiteops","user","' 'is_administrator","/#/settings/general-settings")', @@ -6045,7 +6165,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Logical_Mapped_Path.Settings.Settings', test_name='UIGeneralSettingsNavigation_TC10897(True,"1","abcd","chrome","en","' 'user,ra_user","crowdSource,whiteops","user","is_administrator","/#/' 'settings/general-settings")', @@ -6081,7 +6201,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Logical_Mapped_Path.Settings.Settings', test_name='UIGeneralSettingsTranslatePhysicalPath_TC10764(True,"1","abcd","' 'chrome","en","user,ra_user","crowdSource,whiteops","user","' 'is_administrator","/#/settings/general-settings")', @@ -6117,7 +6237,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Messages.MessagesTests', test_name='UIMessageTemplatesCompanyInformationCoverage_TC3422_TC7534(True,"en",' '"1","chrome","/#/settings/crowd-messages/welcome-me...")', result='failure', @@ -6183,7 +6303,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Messages.MessagesTests', test_name='UIMessageTemplatesCompanyInformationFunctionality_TC3422_TC7534(True,' '"en","1","chrome","/#/settings/crowd-messages/welcome-me...","google"' ')', @@ -6218,7 +6338,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Messages.MessagesTests', test_name='UIMessageTemplatesCumulativeReminderScheduling_TC3426(True,"en","1","' 'chrome","/#/settings/crowd-messages/welcome-me...")', result='failure', @@ -6251,7 +6371,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Messages.MessagesTests', test_name='UIMessageTemplatesDiscardChanges_TC3425(True,"en","1","chrome","/#/' 'settings/crowd-messages/welcome-me...")', result='failure', @@ -6284,7 +6404,7 @@ publish.unittestresults.ParsedUnitTestResults( result_file='nunit3/jenkins/NUnit-issue44527.xml', test_file=None, line=None, - class_name='', + class_name='MyCompanyUiSettings.Tl.Settings.Messages.MessagesTests', test_name='UIMessageTemplatesHtmlEditor_TC3424(True,"en","1","chrome","/#/settin' 'gs/crowd-messages/welcome-me...","