{"id":35059163,"url":"https://github.com/gedaiu/trial","last_synced_at":"2026-03-27T04:17:50.738Z","repository":{"id":64152180,"uuid":"88271269","full_name":"gedaiu/trial","owner":"gedaiu","description":"The extensible test runner for DLang moved to","archived":false,"fork":false,"pushed_at":"2026-03-25T16:48:31.000Z","size":1212,"stargazers_count":16,"open_issues_count":7,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-26T18:28:19.477Z","etag":null,"topics":["dlang","dub","extensible","test-runner"],"latest_commit_sha":null,"homepage":"https://gitlab.com/szabobogdan3/trial","language":"D","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gedaiu.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":"2017-04-14T13:48:12.000Z","updated_at":"2026-03-25T16:48:35.000Z","dependencies_parsed_at":"2025-12-27T10:02:11.591Z","dependency_job_id":null,"html_url":"https://github.com/gedaiu/trial","commit_stats":null,"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/gedaiu/trial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedaiu%2Ftrial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedaiu%2Ftrial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedaiu%2Ftrial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedaiu%2Ftrial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gedaiu","download_url":"https://codeload.github.com/gedaiu/trial/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gedaiu%2Ftrial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31018559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T03:51:26.850Z","status":"ssl_error","status_checked_at":"2026-03-27T03:51:09.693Z","response_time":164,"last_error":"SSL_read: 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":["dlang","dub","extensible","test-runner"],"created_at":"2025-12-27T10:00:53.581Z","updated_at":"2026-03-27T04:17:50.717Z","avatar_url":"https://github.com/gedaiu.png","language":"D","readme":"[![Build Status](https://gitlab.com/szabobogdan3/trial/badges/master/build.svg)](https://gitlab.com/szabobogdan3/trial)\n[![Line Coverage](http://trial.szabobogdan.com/artifacts/coverage/html/coverage-shield.svg)](http://trial.szabobogdan.com/artifacts/coverage/html/index.html)\n[![DUB Version](https://img.shields.io/dub/v/trial.svg)](https://code.dlang.org/packages/trial)\n\n[Writing unit tests is easy with Dlang](https://dlang.org/spec/unittest.html). Unfortunately\nwhen you have a big collection of unit tests, it get's hard to maintain and debug them. In order\nto avoid these problems, you can use this flexible test runner for D programing language.\n\n## Motivation\n\nThere are many test runners for DLang and there are a few of them that have a lot of useful features\nthat helps you to be more productive. Sometimes you need to use a custom feature that is not embedded\nwith those libraries. Maybe it's about a custom test report, a new discovery mode or an integration with\na third party app like an IDE or Jenkins. In each of these cases you need to dig in a project that is\nnot maintained or you need features that does not match the creators view about this subject.\n\nIn order to be able to extend your test runs without depending on other people, I propose a simple\nidea, inspired from well known projects like [TestNg](http://testng.org/doc/),\n[NUnit](https://github.com/nunit/docs/wiki) and [mocha](https://mochajs.org/), that exposes a simple\ninterface that allows you to add what you want, when you want.\n\n## How it works\n\nThe `trial` executable creates a custom main that will be embedded with your code. The build is created\nusing `dub` embeded as a library, so you don't need to install dub to use this runner. All the parameters that you\nprovide to trial will be passed directly to `dub`. Right now trial provides only the `--test` or `-t` option that will\nfilter the discovered tests. For example `trial -t \"The user should see a nice message when one test is run\"` will run\nonly the tests that contain that string in the name.\n\n## Features\n\nThis library intends to provide a rich set of features that helps you to customize your test runs:\n  - [Test discoveries](doc/test-discovery.md)\n  - [Executors](doc/executors.md)\n  - [Reporters](doc/reporters.md)\n  - [Steps](doc/steps.md)\n  - [Attributes](doc/attributes.md)\n  - [Attachments](doc/attachments.md)\n  - [Plugins](doc/plugins.md)\n\n## Configurable\n\nThe trial command can be configured through the `trial.json` file. This file will be created when you run `trial`\nFor the first time. All the root properties are optional. For more details about this file look at the\n[Settings](http://trial.szabobogdan.com/api/trial/settings/Settings.html) structure.\n\nBy default `trial` will use the `unittest` configuration. If you need to use test dependencies or other special\nsetup for the test build, you can add a `trial` configuration inside your package file:\n\n```json\n  ...\n  \"configurations\": [ {\n      \"name\": \"trial\",\n      \"dependencies\": {\n        \"trial:lifecycle\": \"~\u003e0.7.11\",\n        \"fluent-asserts\": \"0.14.0-alpha.11\"\n      }\n    }\n  ]\n  ...\n```\n\nRead [more](https://code.dlang.org/package-format?lang=json#configurations) about dub configurations.\n\n## Hacking\n\nPlease have a look at [trial.interfaces](http://trial.szabobogdan.com/api/trial/interfaces.html)\n\n## Building\n\nClone the repository and run `dub build :runner` to create the app.\n\n## Structure\n\nThere are two packages inside this project. The `runner` packages contains the command line interface\nto run your tests. `lifecycle` provides the functionality like test discovery and reporters.\n\n## Fluent Asserts\n\nSince DLang does not have a rich assert library, you can use [Fluent Asserts](http://fluentasserts.szabobogdan.com/), a library\nthat improves your experience of writing tests.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgedaiu%2Ftrial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgedaiu%2Ftrial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgedaiu%2Ftrial/lists"}