{"id":17086434,"url":"https://github.com/dasch/testengineer","last_synced_at":"2026-06-15T20:31:44.801Z","repository":{"id":4648303,"uuid":"5793561","full_name":"dasch/testengineer","owner":"dasch","description":"Gem to help incorporating Foreman into integration tests","archived":false,"fork":false,"pushed_at":"2012-09-24T08:29:48.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-09T23:51:05.861Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://hackers.mylookout.com","language":"Ruby","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/dasch.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":"2012-09-13T11:16:34.000Z","updated_at":"2018-12-18T19:52:59.000Z","dependencies_parsed_at":"2022-09-11T14:41:02.521Z","dependency_job_id":null,"html_url":"https://github.com/dasch/testengineer","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dasch/testengineer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Ftestengineer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Ftestengineer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Ftestengineer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Ftestengineer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dasch","download_url":"https://codeload.github.com/dasch/testengineer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Ftestengineer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34379915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-10-14T13:28:38.459Z","updated_at":"2026-06-15T20:31:44.779Z","avatar_url":"https://github.com/dasch.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TestEngineer\n\n\n[![Build Status](https://buildhive.cloudbees.com/job/lookout/job/testengineer/badge/icon)](https://buildhive.cloudbees.com/job/lookout/job/testengineer/)\n\nTestEngineer is a simple gem which adds some code around\n[foreman](https://github.com/ddollar/foreman) for integration testing.\n\nCurrently it allows you to bring up an entire stack, based on what is defined\nin the Foreman `Procfile`, for the duration of a test case.\n\nTestEngineer also allows you to arbitrarily shut off processes by name during\nthe runtime of a test case.\n\n\n\n## With Cucumber\n\nThere is an `Around` hook that you can include with\n`require 'testengineer/cucumber'`. This will wrap any Scenario tagged with the\n`@testengineer` tag.\n\nImagine a `Procfile` such as:\n\n    web: ruby -r thin app.rb\n    db: ./script/run-mongodb\n    cache: memcached\n\nA sample Cucumber feature might look like:\n\n\n    @testengineer\n    Feature: Log in to My Site\n      In order to facilitate meaningful relationships between users\n      As a web visitor\n      I should be able to log into my account on My Site\n\n    Scenario: Log in\n      Given an account named \"octocat\"\n      When I log in to My Site\n      Then I should be delighted with my fabulous profile\n\n    Scenario: Log in when the site is degraded\n      Given an account named \"octocat\"\n      And the database is offline\n      When I log in to My Site\n      Then I should see a nice friendly fail whale.\n\n\nFor each scenario, TestEngineer will bring the entire stack (web, db, cache) up\nand down. In the second scenario, I would have defined the step for `And the\ndatabase is offline` as:\n\n    Given /^the database is offline$/ do\n      TestEngineer.stop_process('db')\n    end\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdasch%2Ftestengineer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdasch%2Ftestengineer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdasch%2Ftestengineer/lists"}