source

phpunit에서 단일 테스트 방법을 실행하는 방법은 무엇입니까?

goodcode 2022. 9. 23. 00:12
반응형

phpunit에서 단일 테스트 방법을 실행하는 방법은 무엇입니까?

는 는는 named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named named 라는 이름의 단일 테스트 방법을 실행하는 데 어려움을 겪고 있다.testSaveAndDrop " " " ""escalation/EscalationGroupTest.phpphpunit .

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이렇게 . 어떻게할 수 요?대신 한 가지 방법만 선택하는 방법은 무엇입니까?

은 ★★★★★★★★★★★★★★★★★★★★★★★」EscalationGroupTestphpunit38.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 사용phpunit --filter testSavetestSaveAndDrop "로 함수testSave*★★★★★★★!!

다음 명령이 정확히 실행됩니다. testSaveAndDrop

phpunit --filter '/::testSaveAndDrop$/' escalation/EscalationGroupTest.php
  • larabel root 디렉토리에서 사용하고 있는 프로젝트 루트 디렉토리 내에서 실행합니다.

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');
  }

test 키워드를 사용한 예

/**
* A basic test example.
*
* @return void
*/
 public function testBasicTest()
 {
  $this->assertTrue(true);
 }

phpunit 테스트를 여러 방법으로 larabel로 실행합니다.

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' 

test single 메서드의 경우:

 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 

= ★★★★★★★★★★★★★★★★와 함께'

https://phpunit.de/manual/3.7/en/textui.html

넷빈을 사용하고 있는 경우는, 테스트 방법을 오른쪽 클릭하고, 「Run Focused Test Method(중요한 테스트 방법 실행)」을 클릭합니다.

[ Run Focused Test Method ]메뉴

시험해 볼 수 있습니다1개의 테스트 케이스를 실행할 수 있습니다.

phpunit tests/{testfilename}

예:

phpunit tests/StackoverflowTest.php

Larabel 5.5에서 단일 테스트 케이스를 실행하는 경우 Try

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 응답에서 설명한 대로 원하는 테스트 파일 앞에 인수를 입력합니다.그리고 원하는 테스트만 실행해야 합니다.

당신이라는 걸 생각하면

vendor/bin/phpunit --filter=EscalationGroupTest::testSaveAndDrop

XML 컨피규레이션파일을 사용하고 있는 경우는, 다음의 항목을 다음의 URL 에 추가할 수 있습니다.phpunit태그:

<groups>
  <include>
    <group>nameToInclude</group>
  </include>
  <exclude>
    <group>nameToExclude</group>
  </exclude>
</groups>

https://phpunit.de/manual/current/en/appendixes.configuration.html 를 참조해 주세요.

하지만 나는 파티에 늦었다.하지만 개인적으로 나는 한 줄 전체를 쓰는 것을 싫어한다.

대신 .bash_profile 파일에서 다음 단축키를 사용합니다.새 에일리어스를 추가한 후 .bash_profile 파일을 소스합니다.

alias pa="php artisan"
alias pu="vendor/bin/phpunit" 
alias puf="vendor/bin/phpunit --filter"

사용방법:

puf function_name

puf filename

Visual Studio Code를 사용하는 경우 다음 패키지를 사용하여 테스트를 쉽게 수행할 수 있습니다.

Package Name: Better PHPUnit
Link: https://marketplace.visualstudio.com/items?itemName=calebporzio.better-phpunit

그런 다음 설정에서 키 바인딩을 설정할 수 있습니다.MAC에서 Command + T binding을 사용합니다.

이제 커서를 함수에 놓고 키 바인딩을 사용하면 해당 단일 테스트가 자동으로 실행됩니다.

전체 클래스를 실행해야 할 경우 커서를 클래스 맨 위에 놓고 키 바인딩을 사용하십시오.

다른 것이 있으면 항상 터미널에서 트위크합니다.

해피 코딩!

단일 테스트 메서드를 실행하려면 --filter를 사용해야 합니다.php phpunit --filter "/::testMethod( .*)?$/" ClassTest ClassTest.php

위의 필터는 testMethod만 실행합니다.

언급URL : https://stackoverflow.com/questions/26095051/how-to-run-single-test-method-with-phpunit

반응형