phpunit으로 단일 테스트 방법을 실행하는 방법은 무엇입니까?
나는이라는 단일 시험 방법을 실행하기 위해 고군분투 testSaveAndDrop
파일에 escalation/EscalationGroupTest.php
와를 phpunit
. 나는 다음 조합을 시도했다 :
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=escalation/EscalationGroupTest.php::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest.php::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=testSaveAndDrop
각각의 경우 파일의 모든 테스트 방법 escalation/EscalationGroupTest.php
이 실행됩니다. 하나의 방법을 대신 선택하는 방법?
클래스의 이름입니다 EscalationGroupTest
과의 버전은 phpunit
3.2.8이다.
다음 명령은 단일 방법으로 테스트를 실행합니다.
phpunit --filter testSaveAndDrop EscalationGroupTest escalation/EscalationGroupTest.php
phpunit --filter methodName ClassName path/to/file.php
최신 버전의 phpunit의 경우 다음과 같습니다.
phpunit --filter methodName path/to/file.php
주석에 테스트를 표시하는 것을 선호합니다.
/**
* @group failing
* Tests the api edit form
*/
public function testEditAction()
그런 다음
phpunit --group failing
명령 행에 전체 경로를 지정할 필요는 없지만, 코드를 어지럽히 지 않기 위해 커밋 전에이를 제거해야합니다.
단일 테스트에 여러 그룹을 지정할 수도 있습니다
/**
* @group failing
* @group bug2204
*/
public function testSomethingElse()
{
}
더 일반적인 대답은 다음과 같습니다.
메소드 이름이 고유하다고 확신하는 경우 메소드 이름으로 만 필터링 할 수 있습니다 (이것이 저에게 효과적입니다)
phpunit --filter {TestMethodName}
그러나 파일 경로 / 참조를 지정하는 것이 더 안전합니다.
phpunit --filter {TestMethodName} {FilePath}
예:
phpunit --filter testSaveAndDrop reference/to/escalation/EscalationGroupTest.php
빠른 참고 사항 : 이름이 지정된 함수가 testSave
있고 testSaveAndDrop
command phpunit --filter testSave
를 사용하여 이름이 지정된 다른 함수 도 실행 testSaveAndDrop
되고로 시작하는 다른 함수가 testSave*
있으면 이상합니다!
다음 명령은 정확히 testSaveAndDrop
테스트 를 실행 합니다 .
phpunit --filter '/::testSaveAndDrop$/' escalation/EscalationGroupTest.php
이런 식으로
phpunit --filter 'EscalationGroupTest::testSaveAndDrop' EscalationGroupTest escalation/EscalationGroupTest.php
없이 =
와와'
https://phpunit.de/manual/3.7/en/textui.html
여러 가지 방법으로 laravel에서 phpunit 테스트를 실행하십시오 ..
vendor/bin/phpunit --filter methodName className pathTofile.php
vendor/bin/phpunit --filter 'namespace\\directoryName\\className::methodName'
단일 클래스 시험 :
vendor/bin/phpunit --filter tests/Feature/UserTest.php
vendor/bin/phpunit --filter 'Tests\\Feature\\UserTest'
vendor/bin/phpunit --filter 'UserTest'
단일 방법 테스트 :
vendor/bin/phpunit --filter testExample
vendor/bin/phpunit --filter 'Tests\\Feature\\UserTest::testExample'
vendor/bin/phpunit --filter testExample UserTest tests/Feature/UserTest.php
네임 스페이스 내의 모든 클래스에서 테스트를 실행하십시오.
vendor/bin/phpunit --filter 'Tests\\Feature'
더 많은 방법을 실행 테스트를 더보기
netbeans에 있다면 테스트 방법을 마우스 오른쪽 버튼으로 클릭하고 "집중 테스트 방법 실행"을 클릭하십시오.
당신은 이것을 시도 할 수 있습니다 단일 테스트 사례를 실행할 수 있습니다
phpunit tests/{testfilename}
예 :
phpunit tests/StackoverflowTest.php
Laravel 5.5에서 단일 테스트 사례를 실행하려면
vendor/bin/phpunit tests/Feature/{testfilename}
vendor/bin/phpunit tests/Unit/{testfilename}
예 :
vendor/bin/phpunit tests/Feature/ContactpageTest.php
vendor/bin/phpunit tests/Unit/ContactpageTest.php
테스트가 모두 실행되는 이유 --filter
는 파일 이름 뒤에 플래그 가 있기 때문 입니다. PHPUnit은 옵션을 전혀 읽지 않으므로 모든 테스트 사례를 실행하고 있습니다.
도움말 화면에서 :
Usage: phpunit [options] UnitTest [UnitTest.php]
phpunit [options] <directory>
따라서 --filter
@Alex 및 @Ferid Mövsümov 답변에서 언급 한대로 원하는 테스트 파일 앞에 인수를 이동하십시오 . 또한 원하는 테스트 만 실행해야합니다.
XML 구성 파일을 사용하는 경우 phpunit
태그 안에 다음을 추가 할 수 있습니다 .
<groups>
<include>
<group>nameToInclude</group>
</include>
<exclude>
<group>nameToExclude</group>
</exclude>
</groups>
https://phpunit.de/manual/current/en/appendixes.configuration.html을 참조 하십시오
단일 테스트 방법을 실행하려면 --filter를 사용해야합니다 php phpunit --filter "/::testMethod( .*)?$/" ClassTest ClassTest.php
위의 필터는 testMethod 만 실행합니다.
나는 파티에 늦었다. 그러나 개인적으로 나는 전체 줄을 쓰는 것을 싫어합니다.
대신 .bash_profile 파일 에서 다음 바로 가기를 사용하면 새 별칭을 추가 한 후 .bash_profile 파일 을 소스로 지정 해야 작동하지 않습니다.
alias pa="php artisan"
alias pu="vendor/bin/phpunit"
alias puf="vendor/bin/phpunit --filter"
용법:
puf function_name
puf filename
당신이 사용하는 경우 비주얼 스튜디오 코드를 당신은 당신의 테스트 산들 바람 만들기 위해 다음과 같은 패키지를 사용할 수 있습니다.
Package Name: Better PHPUnit
Link: https://marketplace.visualstudio.com/items?itemName=calebporzio.better-phpunit
그런 다음 설정에서 키 바인딩을 설정할 수 있습니다. MAC에서 Command + T 바인딩을 사용 합니다.
이제 커서를 임의의 함수에 놓고 키 바인딩을 사용하면 해당 단일 테스트가 자동으로 실행됩니다.
전체 클래스 를 실행해야하는 경우 클래스 위에 커서를 놓고 키 바인딩을 사용하십시오.
다른 것들이 있다면 항상 터미널 과 tweek
행복한 코딩!
참고 URL : https://stackoverflow.com/questions/26095051/how-to-run-single-test-method-with-phpunit
'IT' 카테고리의 다른 글
슬라이드 업 / 다운 애니메이션으로보기 표시 및 숨기기 (0) | 2020.03.22 |
---|---|
SVN이 계속 충돌합니까? (0) | 2020.03.22 |
빈 문자열에 대해 NaN을 parseInt에서 0으로 바꾸는 방법은 무엇입니까? (0) | 2020.03.22 |
C #에서 [] 연산자를 오버로드하는 방법 (0) | 2020.03.22 |
URL에서 프로토콜, 도메인 및 포트 가져 오기 (0) | 2020.03.21 |