your programing

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

lovepro 2020. 10. 11. 11:05
반응형

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


아래에이 테스트 클래스가 있으며 여기에서 "aboutPage"와 같은 하나의 테스트 만 실행하고 싶습니다. 어떻게 아이디어가 있습니까?

이 파일 만 실행하는 방법입니다.

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

(suite-name과 file-name 사이의 공백에 유의하십시오.)


이것이 작동하는 것입니다.

codecept run {suite-name} {file-name} .php : {function-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$

이전 답변 외에도 주어진 이름으로 그룹화하여 하나 이상의 방법을 실행할 수 있습니다.

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

옵션 -g과 그룹 이름을 사용하십시오 .

$ codecept run acceptance VisitorCest -g test-aboutPage

이를 수행하는 더 적절한 방법은 해당 테스트 케이스에 그룹 주석을 할당하는 것입니다. 이것은 다음과 같은 이유로 바람직합니다. 예를 들어 동일한 클래스 VisitorCest에 두 개의 테스트 케이스가있는 경우;

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


이것이 제가하는 것입니다. php codecept.phar run unit UnitNameTest.php


PHP Yii2 Framework사용하는 경우이 명령을 사용하여 하나의 테스트 만 실행할 수 있습니다.

테스트 디렉토리에 있는지 확인하십시오.

cd /codeception/frontend

codecept run -vv acceptance HomeCept

시도해보세요 phpunit --filter {TestMethodName} {FilePath}

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

반응형