programing

스위트에서 하나의 테스트만 실행하려면 어떻게 해야 합니까?

goodjava 2023. 1. 24. 08:11

스위트에서 하나의 테스트만 실행하려면 어떻게 해야 합니까?

아래 테스트 클래스가 있는데, 이 클래스에서 "about Page"와 같은 테스트를 하나만 실행하고 싶습니다.어떻게요?

이 파일만 실행하는 방법은 다음과 같습니다.

codecept run tests/acceptance/VisitorCest.php

하지만 지금은 파일에서 하나의 테스트만 실행하려고 합니다.

<?php
use \AcceptanceTester;

class VisitorCest
{
    public function _before(){}
    public function _after(){}

    public function aboutPage(AcceptanceTester $I)
    {
        $I->wantTo('check about page');
    }

    public function contactPage(AcceptanceTester $I)
    { 
        $I->wantTo('check contact page');
    }
}

다음과 같이 콜론과 함수 이름을 추가합니다.

codecept run tests/acceptance/VisitorCest.php:myTestName

또는 더 짧은 버전:

codecept run acceptance VisitorCest:myTestName

(suit-name과 file-name 사이의 공백에 주의해 주세요).

기능하는 것은 다음과 같습니다.

codecept가 {code-name} {file-name}을(를) 실행합니다.php: {function-name}

suet-name과 file-name 사이의 공백에 주의한다.

@Tzook Bar Noy에서 제공하는 답변 외에 동일한 이름으로 시작하는 테스트가 여러있을 후행 값을 추가할 수 있습니다.다음 예를 생각해 보겠습니다.

<?php

use \AcceptanceTester;

class VisitorCest
{
    public function aboutPage(AcceptanceTester $I)
    {
    }

    public function aboutPageOption(AcceptanceTester $I)
    { 
    }
}

여기서 다음 명령어는 두 테스트를 모두 수행합니다.

codecept run tests/acceptance/VisitorCest.php:aboutPage

이 작업은 첫 번째 작업만 수행합니다.

codecept run tests/acceptance/VisitorCest.php:aboutPage$

이를 위한 보다 적절한 방법은 해당 테스트 사례에 그룹 주석을 할당하는 것입니다.이는 다음과 같은 이유로 권장됩니다.예를 들어, 같은 클래스의 Visitor Cest에 2개의 테스트 케이스가 있는 경우.

public function aboutPage
public function aboutPage2

실행 중

codecept run tests/acceptance/VisitorCest.php:aboutPage

는 VisitorCest:aboutPage 및 VisitorCest:aboutPage2 테스트 케이스를 모두 실행합니다.

이와 같은 테스트 케이스에 그룹 할당

/**
 * @group aaa
 */
public function aboutPage(AcceptanceTester $I)
{
}

그리고 이 테스트 케이스를 이렇게 실행합니다.

codecept run -g aaa

이전 답변 외에 지정된 이름으로 그룹화하여 하나 또는 여러 개의 메서드를 실행할 수 있습니다.

/**
 * @group test-aboutPage
 */
public function aboutPage(AcceptanceTester $I)
{
    $I->wantTo('check about page');
}

옵션 사용-g그룹 이름:

$ codecept run acceptance VisitorCest -g test-aboutPage

이게 내가 하는 일이야 php codecept.phar run unit UnitNameTest.php

사용하시는 경우PHP Yii2 Framework이 명령어를 사용하여 실행할 수 있는 테스트는 1개뿐입니다.

테스트 디렉토리에 있는지 확인합니다.

cd /codeception/frontend

codecept run -vv acceptance HomeCept

오늘은 이 질문에 대한 더 일반적인 대답을 배웠습니다.임의 코드 예외 테스트 목록을 실행하는 숨겨진 방법이 있습니다.예를 들어 Cest1.php, Cest2.php, Cest3.php 이외에는 아무것도 실행하지 않는다고 합니다.모두 다른 스위트, 다른 그룹 등에서 온 것입니다.

이를 실현하기 위한 샘플코드는 다음과 같습니다.

codecept run -o "groups: custom: [Cest1.php, Cest2.php, Cest3.php]" -g custom

요점은 그룹을 즉시 정의하고 필요한 테스트를 그룹에 포함시킨 후 신생 그룹의 테스트를 한 번의 명령으로 즉시 실행하는 것입니다.

사용해보십시오. phpunit --filter {TestMethodName} {FilePath}

언급URL : https://stackoverflow.com/questions/25074243/how-can-i-run-only-one-test-from-a-suite