{"id":19680802,"url":"https://github.com/codewars/unittested","last_synced_at":"2026-02-05T21:31:21.745Z","repository":{"id":46128534,"uuid":"424463833","full_name":"codewars/unittested","owner":"codewars","description":"D unittest runner for Codewars","archived":false,"fork":false,"pushed_at":"2021-11-12T01:56:34.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-25T10:21:14.593Z","etag":null,"topics":["code-runner","test-reporting"],"latest_commit_sha":null,"homepage":"","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codewars.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}},"created_at":"2021-11-04T03:45:34.000Z","updated_at":"2021-11-12T02:02:21.000Z","dependencies_parsed_at":"2022-09-03T06:31:21.283Z","dependency_job_id":null,"html_url":"https://github.com/codewars/unittested","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codewars/unittested","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewars%2Funittested","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewars%2Funittested/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewars%2Funittested/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewars%2Funittested/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codewars","download_url":"https://codeload.github.com/codewars/unittested/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewars%2Funittested/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29135047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T20:50:26.975Z","status":"ssl_error","status_checked_at":"2026-02-05T20:49:26.082Z","response_time":65,"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":["code-runner","test-reporting"],"created_at":"2024-11-11T18:06:08.897Z","updated_at":"2026-02-05T21:31:21.682Z","avatar_url":"https://github.com/codewars.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"# unittesteD\n\nD `unittest` runner for Codewars.\n\n## Example\n\n```d\nmodule solution;\n\nexport int add(int a, int b) {\n    import std.stdio : stdout;\n    stdout.writefln(\"a = %d, b = %d\", a, b);\n    return a;\n}\n```\n\n```d\nmodule solution_test;\n\nimport solution : add;\n\nversion(unittest) import fluent.asserts;\n\n@(\"add returns the sum\")\nunittest {\n    add(1, 1).should.equal(2).because(\"1 + 1 == 2\");\n    // assert(add(1, 1) == 2);\n}\n```\n\nRun tests with `dub test`.\n\nThe test runner is a heavily modified version of [`silly`], and you should use that instead when testing locally.\n\n## Changes from `silly`\n\n- Changed the output to Codewars format\n- Removed multi-threaded mode to easily group outputs from submitted\n  solution under the relevant test\n- Removed filtering\n- Removed discovery of tests in classes and structs\n- Removed fail-fast mode (failure in a test block won't affect others)\n- Changed to use `std.datetime.stopwatch.StopWatch`\n\n## Acknowledgements\n\nThe test runner is a heavily modified version of [`silly`].\n\n```text\nCopyright (c) 2019, Anton Fediushin\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n```\n\n[`silly`]: https://code.dlang.org/packages/silly\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodewars%2Funittested","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodewars%2Funittested","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodewars%2Funittested/lists"}