{"id":13509212,"url":"https://github.com/antp/kovacs","last_synced_at":"2026-02-18T22:01:57.183Z","repository":{"id":18584156,"uuid":"21787736","full_name":"antp/kovacs","owner":"antp","description":null,"archived":false,"fork":false,"pushed_at":"2020-03-03T22:36:02.000Z","size":7473,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-20T12:23:00.843Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-13T10:18:07.000Z","updated_at":"2024-12-10T10:02:22.000Z","dependencies_parsed_at":"2022-09-11T19:10:38.960Z","dependency_job_id":null,"html_url":"https://github.com/antp/kovacs","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/antp/kovacs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antp%2Fkovacs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antp%2Fkovacs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antp%2Fkovacs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antp%2Fkovacs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antp","download_url":"https://codeload.github.com/antp/kovacs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antp%2Fkovacs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29596329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T20:59:56.587Z","status":"ssl_error","status_checked_at":"2026-02-18T20:58:41.434Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2024-08-01T02:01:04.627Z","updated_at":"2026-02-18T22:01:57.164Z","avatar_url":"https://github.com/antp.png","language":"Elixir","funding_links":[],"categories":["Testing"],"sub_categories":[],"readme":"# Kovacs - A simple ExUnit test runner\n\n## Installation\n\nDownload the latest release (or clone) the repository and build Kovacs with:\n\n    MIX_ENV=prod mix escript.build\n\n\nInstall the application into a directory on your path\n\n        /usr/local/bin\n\nThe easiest way to do this is to create a symbolic link to kovacs in\nthe directory where you have downloaded the project too.\n\n        ln -s ~/{project path}/kovacs /usr/local/bin/kovacs\n\n## Dependencies\n\nYou will also need fswatch installed as Kovacs uses this to monitor the file system.\nPlease download fswatch for your OS from its [github repository](https://github.com/emcrisostomo/fswatch).\n\n\n## Quick start\n\nkovacs can then be run in any directory by typing the following:\n\n        kovacs\n\nBy default it will monitor the __lib__ and __test__ directories.\n\nDue to problems closing down external applications when exiting Elixir command line applications,\nplease enter `q\u003ccr\u003e` to quit Kovacs.\n\n__Important:__ Failure to do this will leave instances of fswatch running on your system and you will need to manually tidy them up.\n\nWhen you save a file, Kovacs will run the corresponding test file.\nThe runner will look for a test file in the same directory structure as the tested file.\n\nIf you have a file in:\n\n        lib/parser/filter.ex\n\nthen it will expect the test file:\n\n        test/parser/filter_test.exs\n\nWhen running Kovacs, the colour output from ExUnit will not be shown. If you want to have colour output then update the projects test_helper.ex file to the following:\n\n        ExUnit.start([colors: [enabled: true]])\n\nKovacs will exclude any tests that are tagged with `@pending` or `@ignore`.\n\n        @tag :pending\n        test \"It will add\" do\n            assert 2 == 1 + 1\n        end\n\n## Integration tests\n\nIf a all tests pass for the last run file, Kovacs will attempt to run a file named after the directory the test file is in. This allows for targeted integration tests for all files that collaborate within a directory.\n\nIf it is the root directory then Kovacs will look for a file named `app_test.exs`.\n\nYou can toggle the running of the integration test file at any time by entering `i\u003ccr\u003e`.\n\n## Configuration\n\nif you want to watch any custom directories then you will need to supply a configuration file.\n\nCreate a Elixir configuration file e.g. kovacs.ex\nwith the following contents.\n\n        defmodule Kovacs.Cfg do\n          def configure do\n            Kovacs.watch([\"./lib/dir1\", \"./lib/dir2\", \"./test\"])\n          end\n        end\n\nThis will watch the __lib/dir1__, __lib/dir2__ and __test__ directories from your project root,\nfor file changes.\n\n\n__Note:__ Do not watch sub directories of an already watched directory.\nDuplicate file changes may be detected if you do.\n\n### Running\n\nRun kovacs with the following\n\n        kovacs {optional configuration file}\n\n\n\n__Important:__ When exiting the application press the `q` key followed by carriage return.\nDo not exit kovacs with `ctrl-c`. This will leave fswatch instances running,\nwhich you will need to manually clean up -- you have been warned.\n\n## Author\n\nCopyright © 2014 Component X Software, Antony Pinchbeck\n\nReleased under Apache 2 License\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantp%2Fkovacs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantp%2Fkovacs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantp%2Fkovacs/lists"}