Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Jun 1, 2024. It is now read-only.
/hacktestPublic archive

A unit testing framework for Hack

License

NotificationsYou must be signed in to change notification settings

hhvm/hacktest

Repository files navigation

Build Status

HackTest is a unit test runner and base class. Assertions are providedby separate libraries, suchfbexpect.

Installation

php /path/to/composer.phar require --dev hhvm/hacktest facebook/fbexpect

Usage

To run tests:

vendor/bin/hacktest [OPTIONS] tests/

Tests are methods in classes, where:

  • the class name matches the file name
  • the class name ends with 'Test'
  • the method is public
  • the method name begins with 'test'

Test methods can be async, and will automatically be awaited.

Additionally, classes can implement several special methods:

  • public static function beforeFirstTestAsync(): Awaitable<void>
  • public static function afterLastTestAsync(): Awaitable<void>
  • public function beforeEachTestAsync(): Awaitable<void>
  • public function afterEachTestAsync(): Awaitable<void>

Finally, for data-driven tests, the<<DataProvider>> attribute can be used:

publicfunctionprovideFoos():vec<(string,int)> {returnvec[tuple('foo',123),tuple('bar',456),  ];}<<DataProvider('provideFoos')>>publicfunctiontestFoos(string$a,int$b):void {....}

Examples

"I want to test all files in a directory"

$ vendor/bin/hacktest tests/clean/exit/...Summary: 3 test(s), 3 passed, 0 failed, 0 skipped, 0 error(s).

"I want to run all tests in a specific file"

$ vendor/bin/hacktest tests/dirty/DirtyAsyncTest.phpFFF1) DirtyAsyncTest::testWithNonNullableTypesAsyncFailed asserting that Array &0 (    0 => 1    1 => 'foo') is not identical to Array &0 (    0 => 1    1 => 'foo')./fakepath/hacktest/tests/dirty/DirtyAsyncTest.php(22): Facebook\FBExpect\ExpectObj->toNotBeSame()/fakepath/hacktest/src/Framework/HackTestCase.php(43): DirtyAsyncTest->testWithNonNullableTypesAsync()2)...Summary: 3 test(s), 0 passed, 3 failed, 0 skipped, 0 error(s).

For an example in verbose mode, seeexample.txt

Contributing

SeeCONTRIBUTING.md.

License

The HackTest framework is MIT-licensed.


[8]ページ先頭

©2009-2025 Movatter.jp