이 패키지를 사용하면 주석에서 PHPUnit 테스트를 생성할 수 있으며, 이를 메소드 문서에 작성할 수 있습니다.
이 확장 기능을 설치하는 가장 좋은 방법은 작곡가를 이용하는 것입니다.
실행하거나
composer require hyperia/codecept-unittest-generator: " ^1.0 "
또는 추가
"hyperia/codecept-unittest-generator": "^1.0"
Composer.json의 require 섹션에 추가하세요.
기본 /codeception.yml
구성 파일에서 UnitGenerator
확장을 활성화합니다.
extensions :
enabled :
- CodeceptionExtensionRunFailed
commands :
- CodeceptionCommandUnitGenerator
unitgenerator :
config :
# erase old target files with new one
overwrite : true
# if you want to generate tests for Interface too
interface : false
# automaticaly generate tests for getter / setter method
auto : true
# ignore errors that can be ignored
ignore : true
# regex (/.*config.php/ for example) that files must not match to have a tests generation
exclude : ' /.*Trait.*/ '
# regex (/.*.php/ for example) that files should match to have a tests generation
include : ' /.*.php/ '
dirs :
# source directory => target directory
- common/models : tests/unit/unitgen/common/models/
- console/models : tests/unit/unitgen/console/models/
./vendor/bin/codecept generate:unit
/**
* @PHPUnitGen<phpunit_assertion_method>(<expectation>:{<parameters...>})
*/
이 주석은 몇 가지 매개변수를 사용합니다.
phpunit_assertion_method : 사용하고 싶은 PHPUnit 어설션 메서드입니다( assertEquals , ertInstanceOf , assertTrue ...).
Expect : 메서드가 예상 값을 반환합니다. 일부 PHPUnit 메소드에는 ( assertTrue 와 같은) 필요하지 않으므로 이러한 경우에는 null이 될 수 있습니다.
매개변수 : 메소드 매개변수입니다.
이 예를 참조하세요. 이 메서드에 대한 몇 가지 간단한 테스트를 자동으로 생성하려고 합니다.
<?php
// The class to test content
/** @PHPUnitGenAssertEquals('expected string':{1, 2, 'a string'}) */
/** @PHPUnitGenAssertTrue(:{4, 5, 'another'}) */
/** @PHPUnitGenAssertEquals(null) */
/** @PHPUnitGenAssertNull() */
public function method ( int $ arg1 = 0 , int $ arg2 = 0 , string $ arg3 = ' default ' ) {}
이러한 주석은 기본 PHPUnit 테스트를 생성합니다.
<?php
// The generated test for "method" in tests class
$ this -> assertEquals ( ' expectation string ' , $ this -> method ( 1 , 2 , ' a string ' ));
$ this -> assertTrue ( $ this -> method ( 4 , 5 , ' another ' ));
$ this -> AssertEquals ( null , $ this -> method ());
$ this -> assertNull ( $ this -> method ());
<?php
// The class to test content
/** @PHPUnitGenGet() */
/** @PHPUnitGenSet() */
이 두 주석을 사용하면 간단한 getter/setter에 대한 테스트를 자동 생성할 수 있습니다. getter/setter의 이름은 다음과 같이 지정해야 합니다.
get<MyProperty>() {}
set<MyProperty>() {}
PHPUnit Generator에는 "auto" 옵션이 있습니다. 활성화하면 "get" 또는 "set"으로 시작하는 메서드를 찾을 때 속성을 검색하고, 속성이 있으면 테스트를 생성합니다.
테스트할 메소드가 비공개이거나 보호된 경우 PHPUnit Generator는 PHP ReflectionClass를 사용하여 메소드에 액세스합니다.
UnitGenerator를 실행하려면 다음 구성 요소가 필요합니다.