{"id":15916880,"url":"https://github.com/qase-tms/qase-phpunit","last_synced_at":"2026-04-08T14:32:35.275Z","repository":{"id":38457989,"uuid":"433780498","full_name":"qase-tms/qase-phpunit","owner":"qase-tms","description":"Qase TMS PHPUnit reporter.","archived":false,"fork":false,"pushed_at":"2026-03-05T19:13:43.000Z","size":2578,"stargazers_count":7,"open_issues_count":0,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-05T22:26:46.516Z","etag":null,"topics":["php","phpunit","qase","reporter","tms"],"latest_commit_sha":null,"homepage":"https://developers.qase.io","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qase-tms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-01T10:25:34.000Z","updated_at":"2026-03-05T19:12:17.000Z","dependencies_parsed_at":"2025-03-24T07:34:36.076Z","dependency_job_id":"bc1585bf-1d5f-44d4-b261-773b9593965c","html_url":"https://github.com/qase-tms/qase-phpunit","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/qase-tms/qase-phpunit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qase-tms%2Fqase-phpunit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qase-tms%2Fqase-phpunit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qase-tms%2Fqase-phpunit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qase-tms%2Fqase-phpunit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qase-tms","download_url":"https://codeload.github.com/qase-tms/qase-phpunit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qase-tms%2Fqase-phpunit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31559808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","phpunit","qase","reporter","tms"],"created_at":"2024-10-06T18:06:11.402Z","updated_at":"2026-04-08T14:32:35.233Z","avatar_url":"https://github.com/qase-tms.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Qase TMS PHPUnit Reporter\n\nPublish test results easily and efficiently.\n\n## Installation\n\nTo install the latest version, run:\n\n```sh\ncomposer require qase/phpunit-reporter \n```\n\nAdd the following lines to the `phpunit.xml` file:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cphpunit bootstrap=\"./vendor/autoload.php\"\u003e\n    \u003cextensions\u003e\n        \u003cbootstrap class=\"Qase\\PHPUnitReporter\\QaseExtension\"/\u003e\n    \u003c/extensions\u003e\n\u003c/phpunit\u003e\n```\n\n## Getting Started\n\nThe PHPUnit reporter can auto-generate test cases and suites based on your test data.\nTest results of subsequent test runs will match the same test cases as long as their names and file paths don’t change.\n\nYou can also annotate tests with the IDs of existing test cases from Qase.io before executing them.\nThis is a more reliable way to bind automated tests to test cases, ensuring they persist when you rename, move, or\nparameterize your tests.\n\nFor more information, refer to the [Usage Guide](docs/usage.md).\n\nFor example:\n\n```php\n\u003c?php\n\nnamespace Tests;\n\nuse Exception;\nuse PHPUnit\\Framework\\TestCase;\nuse Qase\\PHPUnitReporter\\Attributes\\Field;\nuse Qase\\PHPUnitReporter\\Attributes\\Parameter;\nuse Qase\\PHPUnitReporter\\Attributes\\QaseId;\nuse Qase\\PHPUnitReporter\\Attributes\\Suite;\nuse Qase\\PHPUnitReporter\\Attributes\\Title;\nuse Qase\\PHPUnitReporter\\Qase;\n\n#[Suite(\"Main suite\")]\nclass SimplesTest extends TestCase\n{\n    #[\n        Title('Test one'),\n        Parameter(\"param1\", \"value1\"),\n    ]\n    public function testOne(): void\n    {\n        Qase::comment(\"My comment\");\n        $this-\u003eassertTrue(true);\n    }\n\n    #[\n        QaseId(123),\n        Field('description', 'Some description'),\n        Field('severity', 'major')\n    ]\n    public function testTwo(): void\n    {\n        Qase::attach(\"/my_path/file.json\");\n        $this-\u003eassertTrue(false);\n    }\n\n    #[\n        Suite('Suite one'),\n        Suite('Suite two')\n    ]\n    public function testThree(): void\n    {\n        Qase::attach((object) ['title' =\u003e 'attachment.txt', 'content' =\u003e 'Some string', 'mime' =\u003e 'text/plain']);\n        throw new Exception('Some exception');\n    }\n}\n```\n\nTo execute PHPUnit tests and report them to Qase.io, run the command:\n\n```bash\nQASE_MODE=testops ./vendor/bin/phpunit\n```\n\nor, if configured in a script:\n\n```bash\ncomposer test\n```\n\nA test run will be created and accessible at:\n\nhttps://app.qase.io/run/QASE_PROJECT_CODE\n\n### Parallel Execution\n\nThe reporter supports parallel execution of tests using the `paratest` package.\n\nTo run tests in parallel, use the following command:\n\n```bash\nQASE_MODE=testops ./vendor/bin/paratest\n```\n\n## Configuration\n\nQase PHPUnit Reporter can be configured using:\n\n1. A separate configuration file qase.config.json.\n2. Environment variables (which override the values in the configuration file).\n\nFor a full list of configuration options, refer to\nthe [Configuration Reference](https://github.com/qase-tms/qase-php-commons/blob/main/README.md#configuration).\n\nExample qase.config.json\n\n```json\n{\n  \"mode\": \"testops\",\n  \"debug\": true,\n  \"testops\": {\n    \"api\": {\n      \"token\": \"api_key\"\n    },\n    \"project\": \"project_code\",\n    \"run\": {\n      \"complete\": true\n    }\n  }\n}\n```\n\n## Requirements\n\nWe maintain the reporter on LTS versions of PHP.\n\n- php \u003e= 8.1\n- phpunit \u003e= 10\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqase-tms%2Fqase-phpunit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqase-tms%2Fqase-phpunit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqase-tms%2Fqase-phpunit/lists"}