मैं एक सूट से केवल एक परीक्षण कैसे चला सकता हूं?


85

मेरे पास यह परीक्षण कक्षा है, और मैं इसमें से केवल एक परीक्षा चलाना चाहता हूं, उदाहरण के लिए "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');
    }
}

जवाबों:


140

आप बस एक बृहदान्त्र और फ़ंक्शन नाम को जोड़ते हैं, जैसे:

codecept run tests/acceptance/VisitorCest.php:myTestName

या एक छोटा संस्करण:

codecept run acceptance VisitorCest:myTestName

(सुइट-नाम और फ़ाइल-नाम के बीच का स्थान नोट करें।)


सिर्फ एक नोट। आप एक ही परीक्षण नहीं चलाया जा सकता है अगर यह एक है इकाई परीक्षण (से बढ़ाया PHPUnit_Framework_TestCase के रूप में) codeception नहीं है फिल्टर (विपरीत विकल्प PHPUnit )
coviex

3
codecept run unit / TestThatExtendsPHPUnit.php: testMethod मेरे लिए ठीक काम करता है।
mike.pj

4
आप .phpइस तरह फ़ाइल नाम एक्सटेंशन को छोड़ सकते हैं :codecept run -- -c frontend unit models/ContactFormTest:testSendEmail
jlapoutre

myTestNameया तो पूर्ण परीक्षण नाम नहीं है। यह आंशिक मैच
andttweber

मैं निर्भरता के साथ भी कैसे चल सकता हूं?
दिओगो अल्वेस

39

यह वही है जो काम करता है:

कोडस्क्रिप्ट रन {सुइट-नाम} {फ़ाइल-नाम} .php: {function-name}

सुइट-नाम और फ़ाइल-नाम के बीच की जगह को नोटिस करें


तकनीकी रूप से आपके पास अधिक सामान्य समाधान है। लेकिन जैसा कि साबित हुआ, ज्यादातर लोग इसके बजाय उदाहरण देखना पसंद करते हैं।
इब्बनम

2
.phpभाग की जरूरत नहीं है ।
tivnet

2
@tivnet यह केवल कोडेप्शन 2.x के लिए सही है
कॉन्सेप्टडेलिक

20

@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$

9

ऐसा करने का एक और अधिक उचित तरीका होगा कि प्रश्न में परीक्षण मामले को एक समूह एनोटेशन आवंटित किया जाए। यह निम्नलिखित कारण के लिए बेहतर है; यदि आपके पास एक ही क्लास विज़िटरकेस्ट में उदाहरण के लिए दो परीक्षण मामले हैं;

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


5

पिछले उत्तरों के अलावा, आप किसी दिए गए नाम से समूह बनाकर एक या कई तरीके चला सकते हैं:

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

विकल्प -gऔर समूह के नाम का उपयोग करें :

$ codecept run acceptance VisitorCest -g test-aboutPage

मैं थोड़ा अलग तरीके से पसंद करूँगा, क्योंकि आप उस मामले में टैब कर सकते हैं और आसानी से एक वांछित Cest पर नेविगेट कर सकते हैं, `कोडेक्ट रन टेस्ट / एक्सेप्टेंस / VisitorCest -group test-aboutPage`
Stipe

2

मैं यह करता हूं। php codecept.phar run unit UnitNameTest.php


पूछे जाने वाले प्रश्न के लिए अप्रासंगिक
19

1

यदि आप उपयोग कर रहे हैं PHP Yii2 Framework, तो आप इस कमांड का उपयोग करके केवल एक परीक्षण चला सकते हैं।

सुनिश्चित करें कि आप परीक्षण निर्देशिका में हैं।

cd /codeception/frontend

codecept run -vv acceptance HomeCept

यह Yii2 से संबंधित नहीं है, लेकिन इस तथ्य से कि Ceptकेवल एक ही परीक्षण होता है, लेकिन Cestइसमें कई परीक्षण शामिल हो सकते हैं - प्रारंभिक प्रश्न देखें
ओलिवर हैडर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.