나는이라는 단일 시험 방법을 실행하기 위해 고군분투 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
답변
여러 가지 방법으로 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'
더 많은 방법을 실행 테스트를 더보기
답변
이런 식으로
phpunit --filter 'EscalationGroupTest::testSaveAndDrop' EscalationGroupTest escalation/EscalationGroupTest.php
없이 =
와와'
답변
- 이것을 laravel 루트 디렉토리에서 사용중인 프로젝트 루트 디렉토리에서 실행하십시오.
vendor/bin/phpunit --filter 'Your method name'
사용자 정의 메소드 이름이있는 예.
/** @test //Initilize this for custom method name, without test keyword
*
* Test case For Dashboard When User Not logged In it will redirect To login page
*/
public function only_logged_in_user_see_dashboard()
{
$response = $this->get('/dashboard')
->assertRedirect('/login');
}
테스트 키워드가있는 예
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$this->assertTrue(true);
}