Skip to content

Instantly share code, notes, and snippets.

@raphaelstolt
Created September 20, 2010 21:35
Show Gist options
  • Save raphaelstolt/588697 to your computer and use it in GitHub Desktop.
Save raphaelstolt/588697 to your computer and use it in GitHub Desktop.
A pre-commit for running PHPUnit
#!/usr/bin/php
<?php
printf("%sGit pre-commit hook %1\$s", PHP_EOL);
$projectName = basename(getcwd());
exec('phpunit --configuration phpunit.xml', $output, $returnCode); // Assuming cwd here
if ($returnCode !== 0) {
$minimalTestSummary = array_pop($output);
printf("Test suite for %s failed: ", $projectName);
printf("( %s ) %s%2\$s", $minimalTestSummary, PHP_EOL);
return false; // exit(1);
}
printf("All tests for %s passed.%s%2\$s", $projectName, PHP_EOL);
return true; // exit(0);
@sebastianbergmann
Copy link

--configuration phpunit.xml is not required as phpunit.xml is automatically used by default.

@buddhamagnet
Copy link

This don't work bad boy!

@buddhamagnet
Copy link

This did work:

#!/usr/bin/env php

<?php

$projectName = basename(getcwd());

exec('vendor/bin/phpunit', $output, $returnCode);

if ($returnCode !== 0) {
  $minimalTestSummary = array_pop($output);
  printf("Test suite for %s failed: ", $projectName);
  printf("( %s ) %s%2\$s", $minimalTestSummary, PHP_EOL);
  printf("ABORTING COMMIT!\n");
  exit(1);
}

exit(0);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment