smart-tests-cli 2.16.3__tar.gz → 2.16.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/test.yml +10 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/PKG-INFO +1 -1
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/scripts/update_docs.sh +4 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/__init__.py +2 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/case_event.py +81 -22
- smart_tests_cli-2.16.4/smart_tests/commands/record/coverage.py +135 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/tests.py +34 -20
- smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/assets/images/registered-oidc-subject.png +0 -0
- smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/assets/images/trusted-issuer.png +0 -0
- smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/assets/images/trusted-oidc-subjects.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/nav.adoc +4 -2
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/administration/pages/data-privacy-and-protection.adoc +36 -18
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/build.adoc +1 -1
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/subset.adoc +43 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/test-session.adoc +1 -1
- smart_tests_cli-2.16.4/smart_tests/docs/modules/features/pages/test-notifications/github-app-for-test-sessions.adoc +40 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/cli-reference.adoc +1 -1
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/cli-version.txt +1 -1
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/faq.adoc +11 -0
- smart_tests_cli-2.16.3/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-with-the-smart-tests-cli.adoc → smart_tests_cli-2.16.4/smart_tests/docs/modules/references/pages/integrations.adoc +793 -191
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/supported-languages.adoc +1 -1
- smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/record-test-results.adoc +73 -0
- smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/migration-from-cli-v1-to-v2.adoc +404 -0
- smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/migration-to-github-oidc-auth.adoc +224 -0
- smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/oidc-authentication.adoc +34 -0
- smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/oidc-pipeline-authentication.adoc +346 -0
- smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/use-the-cli-with-docker-image.adoc +5 -0
- smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-with-the-smart-tests-cli.adoc +117 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/PKG-INFO +1 -1
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/SOURCES.txt +17 -1
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/scm_file_list.json +17 -1
- smart_tests_cli-2.16.4/smart_tests_cli.egg-info/scm_version.json +8 -0
- smart_tests_cli-2.16.4/tests/commands/record/test_coverage.py +146 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_tests.py +45 -1
- smart_tests_cli-2.16.4/tests/data/maven/record_test_flaky_error_result.json +45 -0
- smart_tests_cli-2.16.4/tests/data/maven/record_test_flaky_result.json +99 -0
- smart_tests_cli-2.16.4/tests/data/maven/record_test_rerun_error_result.json +99 -0
- smart_tests_cli-2.16.4/tests/data/maven/record_test_rerun_fail_result.json +99 -0
- smart_tests_cli-2.16.4/tests/data/maven/reports-flaky/TEST-flaky.xml +57 -0
- smart_tests_cli-2.16.4/tests/data/maven/reports-flaky-error/TEST-flaky-error.xml +13 -0
- smart_tests_cli-2.16.4/tests/data/maven/reports-rerun-error/TEST-rerun-error.xml +43 -0
- smart_tests_cli-2.16.4/tests/data/maven/reports-rerun-fail/TEST-rerun-fail.xml +53 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_maven.py +36 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tools/generate_reference.py +2 -2
- smart_tests_cli-2.16.3/smart_tests/docs/modules/features/pages/test-notifications/github-app-for-test-sessions.adoc +0 -22
- smart_tests_cli-2.16.3/smart_tests/docs/modules/references/pages/integrations.adoc +0 -228
- smart_tests_cli-2.16.3/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/record-test-results.adoc +0 -615
- smart_tests_cli-2.16.3/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/migration-to-github-oidc-auth.adoc +0 -153
- smart_tests_cli-2.16.3/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/use-the-cli-with-docker-image.adoc +0 -5
- smart_tests_cli-2.16.3/smart_tests_cli.egg-info/scm_version.json +0 -8
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.bazelrc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.bazelversion +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.claude/skills/merge-v1-to-main/SKILL.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.dockerignore +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.editorconfig +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/release.yml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/bazel-test.yml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/e2e.yml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/pre-commit.yml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/publish.yml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/update_maven_install_json.yml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.gitignore +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.pre-commit-config.yaml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.python-version +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.tagpr +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/CLAUDE.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/CONTRIBUTING.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/Dockerfile +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/LICENSE.txt +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/MODULE.bazel +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/MODULE.bazel.lock +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/README.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/WORKSPACE.bzlmod +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/build-java.sh +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/pyproject.toml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/renovate.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/scripts/update_schema.sh +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/setup.cfg +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/setup.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/__main__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/app.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/README.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/argument.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/command.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/converters/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/decorators.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/exceptions.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/option.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/parameter.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/typer/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/analyze/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/analyze/subset.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/compare/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/compare/subsets.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/detect_flakes.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/gate.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/get/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/get/api_schema.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/get/docs.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/inspect/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/inspect/model.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/inspect/subset.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/inspect/tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/attachment.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/build.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/commit.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/deployment.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/session.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/stats/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/stats/test_sessions.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/subset.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/test_path_writer.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/update/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/update/alias.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/verify.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/flaky_tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/longest_tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/never_failing_tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/subsets.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/test_results.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/antora.yml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/adb.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/ant.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/bazel.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/behave.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/ci-tool-integrations/github-actions.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/ci-tool-integrations.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/ctest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/cucumber.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/cypress.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/dotnet-test.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/flutter.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/go-test.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/googletest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/gradle.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/jest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/karma.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/maven.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/minitest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/playwright.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/prove.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/pytest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/robot.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/rspec.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/c-plus-plus.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/dotnet.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/go.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/java.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/javascript.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/perl.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/python.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/ruby.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/appium.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/cucumber.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/googletest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/jest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/junit.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/minitest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/nose.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/nunit.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/prove.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/robot.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/rspec.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/selenium.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/testng.adoc +0 -0
- {smart_tests_cli-2.16.3/smart_tests/docs/modules/references/pages → smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/archive}/supported-test-frameworks.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/vitest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/xctest.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/0607-inference.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/0607-subset-creation.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/0607-training.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/507088cf-209d-4856-be3e-60477c166d92.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/confidence-curve.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/customer-example-curve.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/data-flow.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/demo.gif +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions-prioritized.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/flavors.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/github-comment.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/groups-2-record-after.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/auto-quarantine.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/failure-test.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/manual-quarantine.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/how-long-train-ml-model.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/icons/icon-vertical-three-dots-dark.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/illustion-run-whitelisted-tests-1.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/illustration-ignore-flakes-1.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/illustration-rotate-optimize-coverage.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/illustration-run-recently-failed-tests.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/in-place.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/link-to-results-example.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/model-training-evaluation-confidence-curves.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/new-code-existing-tests.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/object-model-june.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/object-model-v2.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/object-model.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/optimization-target.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/predictive-test-selection-observation-mode.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/prioritized-evaluation-session.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/pts/pts-observe.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/pts-v2-working.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/recording-data.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately-detailed.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-41-20.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-44-15.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-45-10.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-08-22-at-22-50-49.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-1-48-30-pm.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-2-14-11-pm.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-4-50-56-pm.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-06-32-pm.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-09-04-pm.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-21-37-pm.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/builds-dashboard.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/create-api-key.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/initial-settings.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/organization-profile-id.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/record-session.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/test-session-interface.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/shift-left.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/single-session-compared.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/single-session-result.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/slack-desktop-with-app-messages.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-subset-formation-flow.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-builds-interface-v1png.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-cli-3.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-monthly-time-saved.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_api_key_setting_20210613.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_invite_url_20220613.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_settings_20220613.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subscription-ux.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subset/dynamic-parallel.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subset-creation.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subset-exclude.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subsetting-diagram-2x.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/target-line.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-insights-example.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-pyramid.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-runs-log.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-2.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-3.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-4.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-details-with-content.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-report-example.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-sessions-layout.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/testing-bottleneck-infinity.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/training-wheels.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/trends.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/triage-email-demo.avif +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/use-case-1.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/use-case-2.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/zis-with-groups.png +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/pages/getting-started.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/pages/index.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/partials/abbr.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/partials/conditionals.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/administration/pages/data-examples.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/administration/pages/security-policies.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/administration/pages/troubleshooting.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/branch.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/insight.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/object-model.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/organization.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/test-suite.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/workspace.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/high-failure-rate-tests-and-quarantine.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/intelligent-test-failure-diagnostics.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/predictive-test-selection/how-we-select-tests.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/predictive-test-selection/use-cases-for-predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/predictive-test-selection/viewing-time-savings.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-notifications/test-notifications-via-slack.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-notifications.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-results-and-reports.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-suite-parallelization.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-trends-and-insights.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/ai-assistance.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/integrations/raw.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/integrations/use-the-generic-file-based-runner-integration.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/onboarding-guide/best-practices-checklist.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/onboarding-guide/optional-configurations.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/onboarding-guide.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/choose-a-value-for-build-name.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/deal-with-shallow-clones.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-for-microservices.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-for-multistage-build.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-from-multiple-repositories.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/run-under-restricted-networks.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-sessions/record-sessions.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/attach-log-files.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/convert-test-reports-to-junit-format.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/ensure-record-tests-always-runs.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/manage-complex-test-session-layouts.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/separate-out-test-suites.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/use-flavors-to-run-the-best-tests-for-an-environment.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/send-data-to-smart-tests.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/getting-started.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/choose-a-subset-optimization-target.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/combine-with-rule-based-test-selection.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/observe-subset-behavior.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/replace-static-parallel-suites-dynamic-parallel-subset.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/request-and-run-a-subset-of-tests.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/smart-subset-optimization-target.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/smart-tests-extension-for-VS-code.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/use-groups-to-split-subsets.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/zero-input-subsetting.adoc +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/jar/exe_deploy.jar +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/plugins/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/schema/openapi-schema.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/adb.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/ant.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/bazel.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/behave.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/codeceptjs.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/ctest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/cts.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/cucumber.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/cypress.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/dotnet.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/file.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/flutter.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/go_test.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/googletest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/gradle.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/jasmine.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/jest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/karma.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/maven.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/minitest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/nunit.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/playwright.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/prove.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/pytest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/raw.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/robot.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/rspec.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/smart_tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/vitest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/xctest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/testpath.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/authentication.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/ci_provider.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/commands.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/commit_ingester.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/common_tz.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/edit_distance.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/env_keys.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/exceptions.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/fail_fast_mode.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/file_name_pattern.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/git_log_parser.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/glob.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/gzipgen.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/http_client.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/input_snapshot.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/java.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/link.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/logger.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/no_build.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/sax.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/session.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/smart_tests_client.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/subprocess.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/tracking.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/typer_types.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/version.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/dependency_links.txt +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/entry_points.txt +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/requires.txt +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/top_level.txt +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/BUILD +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/Authenticator.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/BUILD +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/BackgroundWorkStatus.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/BoundedExecutorService.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/ChunkStreamer.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/CommitChunkStreamer.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/CommitGraphCollector.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/ConcurrentConsumer.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/CountingDiffFormatter.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/FileChunkStreamer.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/FlushableConsumer.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/GitFile.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/GitHubActionsAuthenticator.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/GitHubIdTokenAuthenticator.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/IOConsumer.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionProgress.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionResponse.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/JSCommit.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/JSFileChange.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/LaunchableHttpClient.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/Main.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/ObjectRevFilter.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/ProgressReporter.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/SSLBypass.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/TokenAuthenticator.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/TreeReceiver.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/VirtualFile.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/maven_install.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/AllTests.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/BUILD +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/BoundedExecutorServiceTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/CommitGraphCollectorTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/ConcurrentConsumerTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/FileChunkStreamerTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/GitFileTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/MainTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/PassThroughTreeReceiverImpl.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/ProgressReporterTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/SSLBypassTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/java8-compat.sh +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/test-runner/__main__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/converters/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/converters/test_converters.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_badcode.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_badinput.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_command.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_decorators.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_help.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_parameter.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_typer.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/cli_test_case.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/compare/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/compare/test_subsets.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/inspect/test_model.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/inspect/test_subset.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/inspect/test_tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_attachment.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_build.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_case_event.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_commit.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_deployment.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_session.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_api_error.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_detect_flakes.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_gate.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_subset.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_verify.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_flaky_tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_longest_tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_never_failing_tests.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_subsets.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_test_results.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/update/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/update/test_alias.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/adb/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/junitreport/TEST-com.example.HelloWorldTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/junitreport/TEST-com.example.library.CacheTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/junitreport/TESTS-TestSuites.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/src/com/example/HelloWorld.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/src/com/example/HelloWorldTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/src/com/example/library/Cache.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/src/com/example/library/CacheTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.log +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.cache_status +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/build_event.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/build_event_rest.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/record_test_with_build_event_json_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/record_test_with_multiple_build_event_json_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/behave/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/behave/reports/report.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/behave/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/broken_xml/broken.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/broken_xml/normal.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/codeceptjs/codeceptjs-result.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/codeceptjs/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ctest/Testing/latest/Test.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ctest/ctest_list.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ctest/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ctest/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cts/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cts/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cts/test_result.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/features/foo/bar.feature +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/features/foo/is_it_friday_yet.feature +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/features/foo-bar.feature +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/features/is_it_friday_yet.feature +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/record_test_json_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/TEST-features-foo-bar.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/TEST-features-foo-is_it_friday_yet.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/TEST-features-is_it_friday_yet.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/dummy.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/empty.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/empty.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/test-result.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/junit-result-with-metadata.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/junit-result.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/record_test_result-junit-with-metadata.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/record_test_result-junit.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/test-result.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/file/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/file/record_test_result_custom_attribute.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/file/result.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/file/result_custom_attribute.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/flutter/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/flutter/report.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/git_log_ingest/sample.out +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/go_test/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/go_test/reportv1/reportv1.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/go_test/reportv2/reportv2.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/go_test/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/fail/output.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/fail/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/output_a.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/output_b.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/App2Test.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/AppTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/sub/App3Test.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/recursion/expected.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/recursion/foo/bar/reports/1.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/README.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/jasmine-test-results-v3.99.0.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/jasmine-test-results.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/subset_payload.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jest/junit.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jest/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jest/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/README.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/sample-report.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/subset_payload.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/createdFile_1.lst +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/createdFile_2.lst +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.CalculatorTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.UserTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/App2Test.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/list.lst +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/record_test_nested_displayname_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports/TEST-1.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports/TEST-2.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports/TEST-nested.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports/dummy.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports-nested-displayname/TEST-nested-displayname.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_by_absolute_time_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_by_confidence_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_from_file_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_scan_dryrun_results_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_scan_test_compile_lst_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_with_exclude_rules_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-Admin_UserTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-UserControllerTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-UserCopyTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-UserTest.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/record_test_result_chunk1.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/record_test_result_chunk2.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/test/example_test.rb +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/list.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/nunit-reporter-bug-with-nested-type.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/nunit-reporter-bug-with-nested-type.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/output-linux.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/output-windows.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/record_test_result-linux.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/record_test_result-windows.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/.gitignore +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/Program.cs +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/README.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/Test.cs +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/calc.csproj +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/packages/e2e/.gitkeep +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/playwright.config.ts +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/record_test_result_with_json.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/record_test_result_with_json_base.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/record_test_result_with_prefix.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/report.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/report.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/report_with_json_base.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/report_with_prefix.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/prove/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/prove/report.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/pytest.ini +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/record_test_result_json.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/report.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/report.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/conftest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/fooo/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/fooo/filenameonly_test.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/fooo/func4_test.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/funcs3_test.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/test_funcs1.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/test_funcs2.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/dryrun.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/output.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/output_legacy.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/record_test_executed_only_one_file_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/record_test_legacy_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/single-output.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/rspec/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/rspec/rspec.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/vitest/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/vitest/report.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/xctest/junit.xml +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/xctest/record_test_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/xctest/subset_result.json +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/helper.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/plugins/foo.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_cli_test_case.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_plugin.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_adb.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_ant.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_bazel.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_behave.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_codeceptjs.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_ctest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_cts.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_cucumber.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_cypress.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_dotnet.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_file.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_go_test.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_googletest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_gradle.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_jasmine.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_jest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_karma.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_minitest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_nunit.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_playwright.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_prove.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_pytest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_raw.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_robot.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_rspec.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_vitest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_xctest.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_testpath.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_version.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/__init__.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_authentication.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_edit_distance.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_fail_fast_mode.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_file_name_pattern.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_git_log_parser.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_glob.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_gzipgen.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_http_client.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_link.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_logger.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_session.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_tracking.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_typer.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_typer_types.py +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tools/README.md +0 -0
- {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/uv.lock +0 -0
|
@@ -65,6 +65,16 @@ jobs:
|
|
|
65
65
|
|
|
66
66
|
- name: Lint with flake8
|
|
67
67
|
run: uv run poe lint
|
|
68
|
+
|
|
69
|
+
- name: Check CLI reference docs are up to date
|
|
70
|
+
run: |
|
|
71
|
+
uv run tools/generate_reference.py smart_tests/docs/modules/references/pages/cli-reference.adoc
|
|
72
|
+
git diff --exit-code smart_tests/docs/modules/references/pages/cli-reference.adoc || {
|
|
73
|
+
echo "::error::cli-reference.adoc is stale. Run 'tools/generate_reference.py smart_tests/docs/modules/references/pages/cli-reference.adoc' and commit the updated doc."
|
|
74
|
+
exit 1
|
|
75
|
+
}
|
|
76
|
+
shell: bash
|
|
77
|
+
|
|
68
78
|
- name: Pull request validation
|
|
69
79
|
run: |
|
|
70
80
|
# Install Smart Tests CLI from this repo's code as a global tool
|
|
@@ -13,3 +13,7 @@ git clone --depth=1 "$REPO" "$tmpdir"
|
|
|
13
13
|
rm -rf "$DOCS_DST"
|
|
14
14
|
cp -r "$tmpdir/docs" "$DOCS_DST"
|
|
15
15
|
echo "Docs updated at $DOCS_DST"
|
|
16
|
+
|
|
17
|
+
CLI_REFERENCE="$DOCS_DST/modules/references/pages/cli-reference.adoc"
|
|
18
|
+
"$(dirname "$0")/../tools/generate_reference.py" "$CLI_REFERENCE"
|
|
19
|
+
echo "Regenerated CLI reference tables in $CLI_REFERENCE"
|
|
@@ -3,6 +3,7 @@ from ...app import Application
|
|
|
3
3
|
from .attachment import attachment
|
|
4
4
|
from .build import build
|
|
5
5
|
from .commit import commit
|
|
6
|
+
from .coverage import coverage
|
|
6
7
|
from .deployment import deployment
|
|
7
8
|
from .session import session
|
|
8
9
|
from .tests import tests
|
|
@@ -18,4 +19,5 @@ record.add_command(commit)
|
|
|
18
19
|
record.add_command(tests)
|
|
19
20
|
record.add_command(session)
|
|
20
21
|
record.add_command(attachment)
|
|
22
|
+
record.add_command(coverage)
|
|
21
23
|
record.add_command(deployment)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
import sys
|
|
3
|
-
from typing import Any, Callable, Dict, Generator
|
|
3
|
+
from typing import Any, Callable, Dict, Generator, List, Optional, Tuple
|
|
4
4
|
|
|
5
5
|
import dateutil.parser
|
|
6
6
|
from dateutil.tz import tzlocal
|
|
@@ -12,7 +12,13 @@ from ...testpath import FilePathNormalizer, TestPath
|
|
|
12
12
|
|
|
13
13
|
POSSIBLE_RESULTS = (Failure, Error, Skipped)
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
# Surefire's rerun/flaky extension tags. junitparser's TestCase.ITER_TYPES (and thus
|
|
16
|
+
# case.result/case.system_out/case.system_err) doesn't know about these, so they're
|
|
17
|
+
# read directly off the raw element.
|
|
18
|
+
RERUN_TAGS = ("rerunFailure", "rerunError")
|
|
19
|
+
FLAKY_TAGS = ("flakyFailure", "flakyError")
|
|
20
|
+
|
|
21
|
+
CaseEventType = Dict[str, Any]
|
|
16
22
|
CaseEventGenerator = Generator[CaseEventType, None, None]
|
|
17
23
|
|
|
18
24
|
# function that computes TestPath from a test case
|
|
@@ -83,17 +89,15 @@ class CaseEvent:
|
|
|
83
89
|
suite: TestSuite,
|
|
84
90
|
report_file: str,
|
|
85
91
|
data_builder: DataBuilder
|
|
86
|
-
) -> Dict:
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
elif isinstance(r, Skipped):
|
|
96
|
-
status = CaseEvent.TEST_SKIPPED
|
|
92
|
+
) -> List[Dict]:
|
|
93
|
+
"""
|
|
94
|
+
Builds JSON representations of CaseEvent(s) from JUnitParser objects.
|
|
95
|
+
|
|
96
|
+
Normally a <testcase> maps to a single event. But Surefire's rerun/flaky
|
|
97
|
+
reports pack multiple attempts into one <testcase> (see RERUN_TAGS/FLAKY_TAGS);
|
|
98
|
+
each attempt is expanded into its own FAILED event here, in addition to the
|
|
99
|
+
testcase's own final PASSED/FAILED/SKIPPED result.
|
|
100
|
+
"""
|
|
97
101
|
|
|
98
102
|
def path_canonicalizer(test_path: TestPath) -> TestPath:
|
|
99
103
|
if sys.platform == "win32":
|
|
@@ -114,6 +118,12 @@ class CaseEvent:
|
|
|
114
118
|
|
|
115
119
|
return ""
|
|
116
120
|
|
|
121
|
+
# TODO(Improvement): when <system-err> is present, it currently replaces the failure's own
|
|
122
|
+
# text/message below instead of being appended to it. A test can both fail AND
|
|
123
|
+
# print to stderr (e.g. a logged warning before the assertion), so this can hide
|
|
124
|
+
# the actual failure detail behind unrelated captured output. Consider
|
|
125
|
+
# concatenating (failure text/message first, then system-err) instead of
|
|
126
|
+
# returning early here.
|
|
117
127
|
def stderr(case: TestCase) -> str:
|
|
118
128
|
"""
|
|
119
129
|
case for:
|
|
@@ -142,15 +152,64 @@ class CaseEvent:
|
|
|
142
152
|
|
|
143
153
|
return stderr
|
|
144
154
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
155
|
+
def final_result() -> Tuple[int, str, str, float]:
|
|
156
|
+
"""
|
|
157
|
+
The testcase's own final result: unchanged from before this method supported reruns.
|
|
158
|
+
<testcase time> is defined by Surefire as the duration of THIS run (the first failing
|
|
159
|
+
run, or the last successful run), so this is the one attempt that keeps it.
|
|
160
|
+
"""
|
|
161
|
+
# TODO: reconsider the initial value of the status.
|
|
162
|
+
status = CaseEvent.TEST_PASSED
|
|
163
|
+
for r in case.result:
|
|
164
|
+
if any(isinstance(r, s) for s in (Failure, Error)):
|
|
165
|
+
status = CaseEvent.TEST_FAILED
|
|
166
|
+
break
|
|
167
|
+
elif isinstance(r, Skipped):
|
|
168
|
+
status = CaseEvent.TEST_SKIPPED
|
|
169
|
+
return status, stdout(case), stderr(case), case.time
|
|
170
|
+
|
|
171
|
+
def attempt_result(elem) -> Tuple[int, str, str, float]:
|
|
172
|
+
"""
|
|
173
|
+
One <flakyFailure>/<flakyError>/<rerunFailure>/<rerunError> attempt: always FAILED.
|
|
174
|
+
Surefire doesn't record a separate duration for these, so duration is 0 (avoids
|
|
175
|
+
double-counting the testcase's total time against final_result()'s duration).
|
|
176
|
+
"""
|
|
177
|
+
def child_text(tag: str) -> Optional[str]:
|
|
178
|
+
child = elem.find(tag)
|
|
179
|
+
return child.text if child is not None and child.text else None
|
|
180
|
+
|
|
181
|
+
attempt_stdout = child_text("system-out") or ""
|
|
182
|
+
attempt_stderr = child_text("system-err") or child_text("stackTrace") or elem.attrib.get("message") or ""
|
|
183
|
+
return CaseEvent.TEST_FAILED, attempt_stdout, attempt_stderr, 0.0
|
|
184
|
+
|
|
185
|
+
rerun_elems = [c for c in case._elem if c.tag in RERUN_TAGS]
|
|
186
|
+
flaky_elems = [c for c in case._elem if c.tag in FLAKY_TAGS]
|
|
187
|
+
|
|
188
|
+
if rerun_elems:
|
|
189
|
+
# failed on the first attempt and on every rerun
|
|
190
|
+
attempts = [final_result()] + [attempt_result(e) for e in rerun_elems]
|
|
191
|
+
elif flaky_elems:
|
|
192
|
+
# failed on earlier attempts, passed on the last one
|
|
193
|
+
attempts = [attempt_result(e) for e in flaky_elems] + [final_result()]
|
|
194
|
+
else:
|
|
195
|
+
# no reruns: unchanged, single-event behavior
|
|
196
|
+
attempts = [final_result()]
|
|
197
|
+
|
|
198
|
+
test_path = path_canonicalizer(path_builder(case, suite, report_file))
|
|
199
|
+
data = data_builder(case)
|
|
200
|
+
|
|
201
|
+
return [
|
|
202
|
+
CaseEvent.create(
|
|
203
|
+
test_path=test_path,
|
|
204
|
+
duration_secs=attempt_duration,
|
|
205
|
+
status=attempt_status,
|
|
206
|
+
stdout=attempt_stdout,
|
|
207
|
+
stderr=attempt_stderr,
|
|
208
|
+
timestamp=suite.timestamp,
|
|
209
|
+
data=data,
|
|
210
|
+
)
|
|
211
|
+
for attempt_status, attempt_stdout, attempt_stderr, attempt_duration in attempts
|
|
212
|
+
]
|
|
154
213
|
|
|
155
214
|
@classmethod
|
|
156
215
|
def create(cls, test_path: TestPath, duration_secs: float, status,
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import glob
|
|
2
|
+
import os
|
|
3
|
+
from io import BytesIO
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Annotated, List, Optional, Tuple
|
|
6
|
+
|
|
7
|
+
import click
|
|
8
|
+
from tabulate import tabulate
|
|
9
|
+
|
|
10
|
+
import smart_tests.args4p.typer as typer
|
|
11
|
+
from smart_tests.utils.session import SessionId, get_session
|
|
12
|
+
|
|
13
|
+
from ... import args4p
|
|
14
|
+
from ...app import Application
|
|
15
|
+
from ...utils.smart_tests_client import SmartTestsClient
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class CoverageStatus:
|
|
19
|
+
SUCCESS = "✓ Recorded successfully"
|
|
20
|
+
FAILED = "⚠ Failed to record"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@args4p.command(help="Record coverage data (LCOV format) related to a test session. "
|
|
24
|
+
"Passing COVERAGE_FILES is optional for bazel; "
|
|
25
|
+
"files are auto discovered when the command is run inside project root. "
|
|
26
|
+
"Other test runners must pass their coverage report file(s) directly.")
|
|
27
|
+
def coverage(
|
|
28
|
+
app: Application,
|
|
29
|
+
session: Annotated[SessionId, SessionId.as_option()],
|
|
30
|
+
coverage_files: Annotated[List[str], typer.Argument(
|
|
31
|
+
multiple=True,
|
|
32
|
+
required=False,
|
|
33
|
+
help="Coverage report files to upload (LCOV format)"
|
|
34
|
+
)] = [],
|
|
35
|
+
):
|
|
36
|
+
client = SmartTestsClient(app=app)
|
|
37
|
+
sources: List[str] = []
|
|
38
|
+
|
|
39
|
+
try:
|
|
40
|
+
# Assert test session exists
|
|
41
|
+
get_session(session, client)
|
|
42
|
+
|
|
43
|
+
if coverage_files:
|
|
44
|
+
sources = list(coverage_files)
|
|
45
|
+
blocks = [_read(f) for f in sources]
|
|
46
|
+
else:
|
|
47
|
+
# No files given: auto-discover from the current directory
|
|
48
|
+
# Auto discovery is Bazel only for now.
|
|
49
|
+
sources, blocks = discover_bazel_coverage(Path("."))
|
|
50
|
+
|
|
51
|
+
# LCOV tracefiles are just a sequence of SF:...end_of_record blocks, so concatenating
|
|
52
|
+
# multiple files is itself a valid tracefile. Send them as one upload rather than one
|
|
53
|
+
# request per file. The server already unions repeated SF: blocks for the same file within
|
|
54
|
+
# one upload, so this is correct even when the inputs cover overlapping files (e.g. one
|
|
55
|
+
# report from a unit-test run, another from an integration-test run touching the same
|
|
56
|
+
# source file)
|
|
57
|
+
content = b"\n".join(blocks)
|
|
58
|
+
status, files_recorded, is_reupload = post_coverage(client, session, content)
|
|
59
|
+
except Exception as e:
|
|
60
|
+
client.print_exception_and_recover(e)
|
|
61
|
+
status, files_recorded, is_reupload = CoverageStatus.FAILED, None, False
|
|
62
|
+
|
|
63
|
+
display_summary(sources, status, files_recorded, is_reupload)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def discover_bazel_coverage(workspace: "str | Path") -> Tuple[List[str], List[bytes]]:
|
|
67
|
+
"""
|
|
68
|
+
Finds every per-target coverage.dat under <workspace>/bazel-testlogs
|
|
69
|
+
|
|
70
|
+
Bazel's own coverage.dat carries no target identity on its own, though TN (Test Name) is a standard LCOV field.
|
|
71
|
+
So we derive TN by file path (same approach used by `record tests bazel`
|
|
72
|
+
(bazel-testlogs/<pkg>/<target>/coverage.dat -> TN://<pkg>:<target>).
|
|
73
|
+
"""
|
|
74
|
+
base = Path(workspace).joinpath('bazel-testlogs')
|
|
75
|
+
if not base.exists():
|
|
76
|
+
raise click.UsageError(
|
|
77
|
+
"No such directory: %s. "
|
|
78
|
+
"Pass coverage report file(s) directly as arguments instead." % str(base))
|
|
79
|
+
|
|
80
|
+
sources: List[str] = []
|
|
81
|
+
blocks: List[bytes] = []
|
|
82
|
+
for report_file in sorted(glob.iglob(os.path.join(str(base), '**', 'coverage.dat'), recursive=True)):
|
|
83
|
+
pkg_and_target = report_file[len(str(base)) + 1:-len("/coverage.dat")]
|
|
84
|
+
package, target = os.path.dirname(pkg_and_target), os.path.basename(pkg_and_target)
|
|
85
|
+
label = "//{}:{}".format(package.replace(os.sep, '/'), target)
|
|
86
|
+
sources.append(report_file)
|
|
87
|
+
blocks.append(_tag_with_test_name(_read(report_file), label))
|
|
88
|
+
|
|
89
|
+
if not blocks:
|
|
90
|
+
raise click.UsageError("No coverage.dat files found under %s" % str(base))
|
|
91
|
+
|
|
92
|
+
return sources, blocks
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def _tag_with_test_name(content: bytes, label: str) -> bytes:
|
|
96
|
+
tn_line = "TN:{}\n".format(label).encode('utf-8')
|
|
97
|
+
tagged = []
|
|
98
|
+
for line in content.splitlines(keepends=True):
|
|
99
|
+
if line.startswith(b"SF:"):
|
|
100
|
+
tagged.append(tn_line)
|
|
101
|
+
tagged.append(line)
|
|
102
|
+
return b"".join(tagged)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def _read(path: str) -> bytes:
|
|
106
|
+
with open(path, mode='rb') as f:
|
|
107
|
+
return f.read()
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def post_coverage(client: SmartTestsClient, session: SessionId, content: bytes) -> Tuple[str, Optional[int], bool]:
|
|
111
|
+
try:
|
|
112
|
+
res = client.request(
|
|
113
|
+
"post", session.subpath("coverage"), compress=True, payload=BytesIO(content),
|
|
114
|
+
additional_headers={"Content-Type": "text/plain"})
|
|
115
|
+
res.raise_for_status()
|
|
116
|
+
summary = res.json()
|
|
117
|
+
return CoverageStatus.SUCCESS, summary.get("sourceFilesRecorded"), summary.get("isReupload", False)
|
|
118
|
+
except Exception as e:
|
|
119
|
+
click.echo("Failed to upload coverage report: {}".format(str(e)), err=True)
|
|
120
|
+
return CoverageStatus.FAILED, None, False
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def display_summary(sources: List[str], status: str, source_files: Optional[int], is_reupload: bool = False):
|
|
124
|
+
if sources:
|
|
125
|
+
click.echo(tabulate([[f] for f in sources], ["Coverage files found"], tablefmt="github"))
|
|
126
|
+
click.echo()
|
|
127
|
+
rows = [[len(sources), source_files if source_files is not None else "-", status]]
|
|
128
|
+
click.echo(tabulate(rows, ["Coverage Files", "Source Files", "Status"], tablefmt="github"))
|
|
129
|
+
if is_reupload:
|
|
130
|
+
click.echo(
|
|
131
|
+
click.style(
|
|
132
|
+
"⚠ This session already had coverage recorded. The previous upload was overwritten. "
|
|
133
|
+
"Refer to --help if you intended to record multiple files",
|
|
134
|
+
fg="yellow"),
|
|
135
|
+
err=True)
|
|
@@ -6,7 +6,7 @@ import xml.etree.ElementTree as ET
|
|
|
6
6
|
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from time import time_ns
|
|
9
|
-
from typing import Annotated, Callable, Dict, Generator, List, Tuple, Union
|
|
9
|
+
from typing import Annotated, Callable, Dict, Generator, Iterable, List, Tuple, Union
|
|
10
10
|
|
|
11
11
|
import click
|
|
12
12
|
from dateutil.parser import ParserError, parse
|
|
@@ -118,7 +118,8 @@ class RecordTests:
|
|
|
118
118
|
try:
|
|
119
119
|
for suite in testsuites:
|
|
120
120
|
for case in suite:
|
|
121
|
-
yield CaseEvent.from_case_and_suite(
|
|
121
|
+
yield from CaseEvent.from_case_and_suite(
|
|
122
|
+
self.path_builder, case, suite, report, self.metadata_builder)
|
|
122
123
|
except Exception as e:
|
|
123
124
|
warn_and_exit_if_fail_fast_mode(
|
|
124
125
|
"Warning: error parsing JUnitXml file {filename}: {error}".format(
|
|
@@ -388,23 +389,6 @@ class RecordTests:
|
|
|
388
389
|
nonlocal is_observation
|
|
389
390
|
is_observation = res.json().get("testSession", {}).get("isObservation", False)
|
|
390
391
|
|
|
391
|
-
def recorded_result() -> Tuple[int, int, int, float]:
|
|
392
|
-
test_count = 0
|
|
393
|
-
success_count = 0
|
|
394
|
-
fail_count = 0
|
|
395
|
-
duration = float(0)
|
|
396
|
-
|
|
397
|
-
for tc in testcases(self.reports):
|
|
398
|
-
test_count += 1
|
|
399
|
-
status = tc.get("status")
|
|
400
|
-
if status == 0:
|
|
401
|
-
fail_count += 1
|
|
402
|
-
elif status == 1:
|
|
403
|
-
success_count += 1
|
|
404
|
-
duration += float(tc.get("duration") or 0) # sec
|
|
405
|
-
|
|
406
|
-
return test_count, success_count, fail_count, duration / 60 # sec to min
|
|
407
|
-
|
|
408
392
|
try:
|
|
409
393
|
start = time_ns()
|
|
410
394
|
tc = testcases(self.reports)
|
|
@@ -478,7 +462,7 @@ class RecordTests:
|
|
|
478
462
|
return
|
|
479
463
|
|
|
480
464
|
file_count = len(self.reports)
|
|
481
|
-
test_count, success_count, fail_count, duration =
|
|
465
|
+
test_count, success_count, fail_count, duration = summarize_case_events(testcases(self.reports))
|
|
482
466
|
|
|
483
467
|
click.echo(
|
|
484
468
|
f"Smart Tests recorded tests for build "
|
|
@@ -516,6 +500,36 @@ class RecordTests:
|
|
|
516
500
|
tests = Group(name="tests", callback=RecordTests, help="Record test results")
|
|
517
501
|
|
|
518
502
|
|
|
503
|
+
def summarize_case_events(events: Iterable[CaseEventType]) -> Tuple[int, int, int, float]:
|
|
504
|
+
"""
|
|
505
|
+
Summarizes a stream of case events into (test_count, success_count, fail_count, duration_minutes),
|
|
506
|
+
for the "Tests found / Tests passed / Tests failed" table printed after `record tests` runs.
|
|
507
|
+
|
|
508
|
+
Grouped by testPath rather than counted per event: a flaky/rerun testcase produces multiple
|
|
509
|
+
events (see CaseEvent.from_case_and_suite), but it's still a single test. A test that ever
|
|
510
|
+
passed counts as passed (even if it also failed on earlier attempts); a test that only ever
|
|
511
|
+
failed counts as failed.
|
|
512
|
+
"""
|
|
513
|
+
tests: Dict[Tuple, Dict[str, bool]] = {}
|
|
514
|
+
duration = float(0)
|
|
515
|
+
|
|
516
|
+
for tc in events:
|
|
517
|
+
key = tuple((p["type"], p["name"]) for p in tc.get("testPath", []))
|
|
518
|
+
entry = tests.setdefault(key, {"passed": False, "failed": False})
|
|
519
|
+
status = tc.get("status")
|
|
520
|
+
if status == 1:
|
|
521
|
+
entry["passed"] = True
|
|
522
|
+
elif status == 0:
|
|
523
|
+
entry["failed"] = True
|
|
524
|
+
duration += float(tc.get("duration") or 0) # sec
|
|
525
|
+
|
|
526
|
+
test_count = len(tests)
|
|
527
|
+
success_count = sum(1 for e in tests.values() if e["passed"])
|
|
528
|
+
fail_count = sum(1 for e in tests.values() if e["failed"] and not e["passed"])
|
|
529
|
+
|
|
530
|
+
return test_count, success_count, fail_count, duration / 60 # sec to min
|
|
531
|
+
|
|
532
|
+
|
|
519
533
|
# if we fail to determine the timestamp of the build, we err on the side of collecting more test reports
|
|
520
534
|
# than no test reports, so we use the 'epoch' timestamp
|
|
521
535
|
INVALID_TIMESTAMP = datetime.datetime.fromtimestamp(0)
|
smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/assets/images/registered-oidc-subject.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -3,7 +3,10 @@ include::ROOT:partial$abbr.adoc[]
|
|
|
3
3
|
* xref:ROOT:index.adoc[Overview]
|
|
4
4
|
* xref:send-data-to-smart-tests:send-data-to-smart-tests.adoc[Send data to {PRODUCT}]
|
|
5
5
|
** xref:send-data-to-smart-tests:set-up-smart-tests/getting-started.adoc[Set up smart tests]
|
|
6
|
-
*** xref:send-data-to-smart-tests:set-up-smart-tests/migration-
|
|
6
|
+
*** xref:send-data-to-smart-tests:set-up-smart-tests/migration-from-cli-v1-to-v2.adoc[Migrate from CLI v1 to v2]
|
|
7
|
+
*** xref:send-data-to-smart-tests:set-up-smart-tests/oidc-authentication.adoc[Authenticate without an API key (OIDC)]
|
|
8
|
+
*** xref:send-data-to-smart-tests:set-up-smart-tests/oidc-pipeline-authentication.adoc[Authenticate a pipeline with OIDC]
|
|
9
|
+
*** xref:send-data-to-smart-tests:set-up-smart-tests/migration-to-github-oidc-auth.adoc[Migrate from the legacy GitHub Actions OIDC flow]
|
|
7
10
|
*** xref:send-data-to-smart-tests:set-up-smart-tests/use-the-cli-with-docker-image.adoc[Use the CLI with Docker image]
|
|
8
11
|
** xref:send-data-to-smart-tests:record-builds/record-builds.adoc[Record builds]
|
|
9
12
|
*** xref:send-data-to-smart-tests:record-builds/choose-a-value-for-build-name.adoc[Choose a value for build name]
|
|
@@ -67,7 +70,6 @@ include::ROOT:partial$abbr.adoc[]
|
|
|
67
70
|
** xref:references:integrations/raw.adoc['raw' profile for custom test runners]
|
|
68
71
|
|
|
69
72
|
* xref:references:supported-languages.adoc[Supported languages]
|
|
70
|
-
* xref:references:supported-test-frameworks.adoc[Supported test frameworks]
|
|
71
73
|
* xref:references:faq.adoc[FAQ]
|
|
72
74
|
|
|
73
75
|
.Administration
|
|
@@ -17,17 +17,17 @@ CloudBees Smart Tests is designed to make your test runs faster and more reliabl
|
|
|
17
17
|
| Data collected | What exactly, and why is it needed?
|
|
18
18
|
|
|
19
19
|
| *Contents of source code & test files*
|
|
20
|
-
| To generate a vector embedding (see in more detail below), so Smart Tests can understand the semantic relationships between how the source code relates to your tests.
|
|
20
|
+
| To generate a vector embedding (see in more detail below), so Smart Tests can understand the semantic relationships between how the source code relates to your tests.
|
|
21
21
|
|
|
22
22
|
This data is temporarily processed by Smart Tests to generate vector embeddings – and not persisted.
|
|
23
23
|
|
|
24
24
|
| *Metadata about the code change under test*
|
|
25
|
-
| Git commit SHAs, branch names, timestamps, Git author details and the list of files changed in each build.
|
|
25
|
+
| Git commit SHAs, branch names, timestamps, Git author details and the list of files changed in each build.
|
|
26
26
|
|
|
27
27
|
These are used to associate a code change with the tests that should run for it.
|
|
28
28
|
|
|
29
29
|
| *Metadata about the test cases that were run*
|
|
30
|
-
| Test paths & names, pass/fail/skip outcomes, durations, and associations with test suites.
|
|
30
|
+
| Test paths & names, pass/fail/skip outcomes, durations, and associations with test suites.
|
|
31
31
|
|
|
32
32
|
These are used to train the prediction model that ranks tests by relevance for each code change, and to power flaky-test detection and other test health & insights features.
|
|
33
33
|
|===
|
|
@@ -40,27 +40,45 @@ Think of it this way, the embedding does not contain the original code any more
|
|
|
40
40
|
|
|
41
41
|
Smart Tests uses embeddings to answer one question: when files change in a commit, which tests are most likely to exercise the behaviour that changed? Comparing embeddings makes that comparison tractable, accurate, and even language-agnostic – Smart Tests can reason about code relationships across languages and frameworks without parsing them.
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
What embeddings don't let us do:
|
|
44
44
|
|
|
45
45
|
* *They do not let us read your code*. The transformation from source to embedding is mathematically lossy; the original content cannot be recovered from a stored vector in any practical sense.
|
|
46
46
|
* *They do not let us execute your code*, extract secrets from it or inspect its behaviour in any way.
|
|
47
47
|
* *They do not enable cross-tenant access*. Every Smart Tests tenant's data – including embeddings – is isolated using row-level security in our database.
|
|
48
|
-
* *They are not used to train public AI models*. Source content sent for embedding is processed to produce the vector and nothing else. It does not flow into the training data for any CloudBees or third-party foundation model.
|
|
49
48
|
|
|
50
|
-
==
|
|
49
|
+
== Model training
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
Your source code is not used to train any AI model – not a CloudBees model, not OpenAI's, and not any other third-party foundation model, for any customer. Source content sent for embedding is processed to produce the vector, and nothing else; it never becomes part of a model's training data.
|
|
52
|
+
|
|
53
|
+
CloudBees does train its own prediction models – the ones that rank tests by relevance and power flaky-test detection. Those are trained on the metadata described above (commit and test-result data), not on source code content.
|
|
54
|
+
|
|
55
|
+
== Data retention
|
|
56
|
+
|
|
57
|
+
*CloudBees*: Source code is held only for the duration of embedding generation:
|
|
58
|
+
|
|
59
|
+
* First-time ingestion (full repository scan): ~3-4 minutes for large enterprise repositories.
|
|
60
|
+
* Subsequent commits (incremental updates): typically a few seconds.
|
|
61
|
+
|
|
62
|
+
After embedding generation completes, source code is permanently and irreversibly deleted. Only the embedding vectors and the metadata described above are retained, for as long as the customer's account is active. Customers have the option to have their data deleted; CloudBees will delete data based on a customer request to do so.
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
*OpenAI (subprocessor)*: Source code is transmitted to OpenAI's /v1/embeddings endpoint (model: text-embedding-3-small) solely to compute the embedding, and is not stored with Smart Tests thereafter. Per link:https://developers.openai.com/api/docs/guides/your-data#storage-requirements-and-retention-controls-per-endpoint[OpenAI's published data-control policy] for that endpoint:
|
|
62
65
|
|
|
63
|
-
*
|
|
64
|
-
*
|
|
66
|
+
* Data sent to the OpenAI API is *not used to train or improve OpenAI's models*.
|
|
67
|
+
* The endpoint retains *no application state* after the response is returned.
|
|
68
|
+
* *Zero Data Retention (ZDR) is enabled* for this workload – CloudBees' OpenAI organization is excluded from OpenAI's default abuse-monitoring log retention for this endpoint.
|
|
69
|
+
|
|
70
|
+
== Subprocessors
|
|
71
|
+
|
|
72
|
+
OpenAI is the only subprocessor that receives source code, and only for the purpose described above. Standard Contractual Clauses covering the transfer are included within OpenAI's link:https://openai.com/policies/data-processing-addendum[Data Processing Agreement], which CloudBees has agreed to.
|
|
73
|
+
|
|
74
|
+
All AI-related vendors that process personal data and are relevant to the services provided are listed within our link:https://www.cloudbees.com/company/trust-center[Trust Center].
|
|
75
|
+
|
|
76
|
+
== Access & security
|
|
77
|
+
|
|
78
|
+
* *Repository access* – Smart Tests does not require a standing connection to your source repository. The CLI runs inside your own CI pipeline and sends the code already checked out for that build – access is scoped to whatever that CI job already has, not a separate CloudBees integration into your SCM.
|
|
79
|
+
* *In transit* – All data is transmitted over HTTPS using TLS 1.3 or higher, end-to-end between your CI environment and CloudBees infrastructure, and onward to OpenAI for embedding generation.
|
|
80
|
+
* *At rest* – Data is encrypted at rest.
|
|
81
|
+
* *Tenant isolation* – CloudBees Smart Tests is a multi-tenant SaaS product; each customer's data – including embeddings – is isolated using row-level security in the database.
|
|
65
82
|
* *Hosting location* – CloudBees Smart Tests is hosted on AWS' US-West region.
|
|
66
|
-
* *
|
|
83
|
+
* *Certifications* – CloudBees Smart Tests is SOC 2 Type 1 compliant (as of August 2023). The underlying AWS infrastructure carries SOC 2 Type 2, ISO 27001, and ISO 27017.
|
|
84
|
+
* *Security reviews & penetration testing* – CloudBees' production infrastructure is reviewed on a recurring basis as part of our standard security program. Smart Tests has already completed a security review, with future reviews scheduled accordingly.
|
{smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/build.adoc
RENAMED
|
@@ -37,6 +37,6 @@ This command collects the details of the changes in each commit in your reposito
|
|
|
37
37
|
By default, `smart-tests record build` runs `smart-tests record commit` , but these operations can be separated.
|
|
38
38
|
--
|
|
39
39
|
|
|
40
|
-
==
|
|
40
|
+
== Build from multiple repositories
|
|
41
41
|
|
|
42
42
|
However, in many other cases, the software being tested might be a single binary built from several repositories. Furthermore, the tested software might combine several services deployed to a single testing environment. The xref:send-data-to-smart-tests:record-builds/record-builds-from-multiple-repositories.adoc[record builds from multiple repositories] page outlines how to instrument your pipeline in these situations.
|
|
@@ -32,6 +32,7 @@ When you request a subset of tests to run in your CI process, you pass in the na
|
|
|
32
32
|
`smart-tests subset --session $SESSION_NAME [other options...]`
|
|
33
33
|
|
|
34
34
|
This is important so that the Predictive Test Selection service can analyze the changes in the build and select tests appropriately.
|
|
35
|
+
Changes from all repositories in the build are considered, regardless of which repository the tests belong to.
|
|
35
36
|
|
|
36
37
|
=== Optimization target
|
|
37
38
|
|
|
@@ -177,3 +178,45 @@ In general, don't worry about creating the input test list. However, understandi
|
|
|
177
178
|
--
|
|
178
179
|
With xref:send-data-to-smart-tests:subset/zero-input-subsetting.adoc[Zero input subsetting], {PRODUCT} generates the input test list automatically.
|
|
179
180
|
--
|
|
181
|
+
|
|
182
|
+
== Fallback mode on Smart Tests failures
|
|
183
|
+
|
|
184
|
+
When the subset API is unavailable or the model is untrained, the CLI falls back according to the `--fallback-mode` option. By default, the CLI runs all tests so that CI is never disrupted.
|
|
185
|
+
|
|
186
|
+
Fallback is triggered by either of the following conditions:
|
|
187
|
+
|
|
188
|
+
* The subset API call fails (network error, HTTP error, timeout, etc.).
|
|
189
|
+
* When the {PRODUCT} model is untrained and the service returns `isBrainless: true`, this means it is still learning from your recorded test data and cannot yet produce an optimized subset.
|
|
190
|
+
|
|
191
|
+
Use the `--fallback-mode` option to choose the fallback behavior:
|
|
192
|
+
|
|
193
|
+
|===
|
|
194
|
+
|Mode |Behavior |When to use
|
|
195
|
+
|
|
196
|
+
|`run-all` (default)
|
|
197
|
+
|Returns all tests unchanged. CI continues normally.
|
|
198
|
+
|Safest option; no disruption to CI when the service is unavailable.
|
|
199
|
+
|
|
200
|
+
|`stop`
|
|
201
|
+
|Exits with a non-zero status. CI halts immediately.
|
|
202
|
+
|When running an unoptimized test suite on failure is unacceptable.
|
|
203
|
+
|
|
204
|
+
|`random-sample`
|
|
205
|
+
|Picks a random local subset at the ratio specified by `--fallback-sampling-target`. No ML duration estimates are used.
|
|
206
|
+
|When you want partial test coverage even if the service is down.
|
|
207
|
+
|===
|
|
208
|
+
|
|
209
|
+
When using `--fallback-mode=random-sample`, you must also specify `--fallback-sampling-target` as a percentage (for example, `50%`). This option is not valid with any other fallback mode.
|
|
210
|
+
|
|
211
|
+
[source]
|
|
212
|
+
----
|
|
213
|
+
smart-tests subset \
|
|
214
|
+
--fallback-mode random-sample \
|
|
215
|
+
--fallback-sampling-target 50% \
|
|
216
|
+
[other options...]
|
|
217
|
+
----
|
|
218
|
+
|
|
219
|
+
[NOTE]
|
|
220
|
+
--
|
|
221
|
+
When the model is untrained and `--fallback-mode=random-sample` is set, the server-side result is used as-is. In this state the server also splits tests, so the local random sample is not applied.
|
|
222
|
+
--
|
|
@@ -43,7 +43,7 @@ In many cases, builds and test sessions map 1:1. For example, a developer pushes
|
|
|
43
43
|
|
|
44
44
|
The CLI handles this default case without any extra steps. Just run `smart-tests record tests` at the end of your run to capture test results in a single session.
|
|
45
45
|
|
|
46
|
-
.
|
|
46
|
+
.Test session definition 1
|
|
47
47
|
image::ROOT:test-session-definition.png[Test session definition 1,role="screenshot"]
|
|
48
48
|
|
|
49
49
|
=== Run tests in different environments
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
include::ROOT:partial$abbr.adoc[]
|
|
2
|
+
= GitHub app for test sessions
|
|
3
|
+
:slug: github-app-for-test-sessions
|
|
4
|
+
|
|
5
|
+
The GitHub app for test sessions gives developers convenient, timely access to test results from their GitHub pull requests. Developers can start investigating failures immediately, without waiting for the entire CI process to finish. Test results are delivered as comments on pull requests.
|
|
6
|
+
|
|
7
|
+
Access to associated workflows and test files via links provided in the {PRODUCT} web app is also available.
|
|
8
|
+
|
|
9
|
+
[#configuration-and-features]
|
|
10
|
+
== Configuration and features
|
|
11
|
+
The following steps are required to enable the GitHub app for test sessions:
|
|
12
|
+
|
|
13
|
+
. Install the link:https://github.com/apps/cloudbees-smart-tests/installations/new[{PRODUCT} GitHub app]. Your GitHub org admin might have to approve that process.
|
|
14
|
+
|
|
15
|
+
. Verify that your test session is associated with a GitHub pull request.
|
|
16
|
+
|
|
17
|
+
. Use the link:https://cloudbees.io/[{PRODUCT} webapp] to find a test session associated with a GitHub pull request.
|
|
18
|
+
|
|
19
|
+
. Once the dropdown appears, the app is fully integrated. This association happens automatically when the {PRODUCT} CLI detects environment variables that are set by typical CI systems to indicate that the test is running for a GitHub pull request.
|
|
20
|
+
|
|
21
|
+
. Select *View workflow run* to get to the workflow in GitHub Actions where this test session was triggered.
|
|
22
|
+
|
|
23
|
+
. Select *View pull request* to go directly to the pull request page for this session.
|
|
24
|
+
+
|
|
25
|
+
Additionally, once the sendGitHub app is integrated, you can jump directly to failing tests associated with files stored in sendGitHub repositories.
|
|
26
|
+
|
|
27
|
+
[#accessing-failing-tests]
|
|
28
|
+
== Accessing failing tests in sendGitHub
|
|
29
|
+
|
|
30
|
+
To access failing tests, follow these steps:
|
|
31
|
+
|
|
32
|
+
. Navigate to a test session page with a failure.
|
|
33
|
+
|
|
34
|
+
. Navigate to the *Failed tests* column at the bottom of the page.
|
|
35
|
+
|
|
36
|
+
. Select the ellipses for the desired failed test.
|
|
37
|
+
|
|
38
|
+
. Select the *Open in sendGitHub* link. This allows you to open this test file directly in sendGitHub.
|
|
39
|
+
|
|
40
|
+
image::ROOT:screenshot-2024-04-29-at-1-48-30-pm.png[]
|
|
@@ -503,7 +503,7 @@ The `--session` parameter is required and must use the session name that was reg
|
|
|
503
503
|
|
|
504
504
|
// GENERATED. MODIFY IN CLI SOURCE CODE
|
|
505
505
|
|`--fallback-mode` FALLBACKMODE
|
|
506
|
-
|Behavior when the subset API is unavailable or the model is untrained. 'run-all' (default) runs all tests as usual; 'stop' exits with a non-zero status so CI halts; 'random-sample' picks a random subset locally based on
|
|
506
|
+
|Behavior when the subset API is unavailable or the model is untrained. 'run-all' (default) runs all tests as usual; 'stop' exits with a non-zero status so CI halts; 'random-sample' picks a random subset locally based on thecount derived from --fallback-sampling-target (no duration estimates are available in this path). Exception: if the model is untrained (brainless mode), theserver has already split the tests, so 'random-sample' keeps that server-provided split as-is instead of sampling locally; the local random sample only applies when the subset API request itself fails.
|
|
507
507
|
|No
|
|
508
508
|
|
|
509
509
|
// GENERATED. MODIFY IN CLI SOURCE CODE
|