2016-09-14 2 views
0

Я новичок, пытающийся изучить Codeception с Selenium WebServer и столкнулся с проблемой, на которую я не могу найти ответа. Я пишу супер базовый тест, который гарантирует, что данные, переданные в a из index.php, одинаковы на другой странице, toupper.php.Первые испытания проходят во время второго теста (с теми же данными) fail Selenium with Codeception

Это мой index.php:

<?php $something = "Can you see me?"; ?> 
<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Convert Me!</title> 
    </head> 
    <body> 
    <h1>Convert Me!</h1> 
    <p> 
     <?php echo $something; ?> 
    </p> 

    <form action="toupper.php" method="post" id="post_form"> 
     <label for="string">Convert to Uppercase:</label> 
     <input type="text" name="my_string" id="string"> 

     <input id="submit" type="submit" name="submitButton" value="Convert"> 
</form> 
    </body> 
</html> 

Это мой toupper.php:

<?php 

    $message = (!empty($_POST['my_string'])) ? strtoupper($_POST['my_string']) : "No string entered"; 

?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>To Upper!</title> 
</head> 
<body> 

    <h1>To Upper!</h1> 

    <p class="message"><?php echo $message; ?></p> 

    <p><a href="index.php">Back to form</a>.</p> 

</body> 
</html> 

Я создал простые Тесты:

<?php 
$I = new AcceptanceTester($scenario); 
$I->wantTo('ensure Toupper form works'); 
$I->amOnPage('index.php'); 
$I->see('Can you see me?'); 
$I->fillField('my_string', 'convert me to uppercase'); 
$I->click('Convert'); 
$I->amOnSubdomain('toupper.php'); 
$I->see('CONVERT ME TO UPPERCASE'); 

Теперь, когда Я запускаю тест, проходит тест, но когда я снова запускаю точный тест с теми же данными, он терпит неудачу. И я не использую базу данных.

Это ошибка, я получаю:

Scenario -- 
I am on page "index.php" 
I see "Can you see me?" 
I fill field "my_string","convert me to uppercase" 
I click "Convert" 
I am on subdomain "toupper.php" 
I see "CONVERT ME TO UPPERCASE" 
FAIL 

-------------------------------------------------------------- 


Time: 2.59 seconds, Memory: 8.00MB 

There was 1 failure: 

--------- 
1) ToupperCept: Ensure toupper form works 
Test tests/acceptance/ToupperCept.php 
Step See "CONVERT ME TO UPPERCASE" 
Fail Failed asserting that /toupper.php 
--> 
--> contains "convert me to uppercase". 

Scenario Steps: 

6. $I->see("CONVERT ME TO UPPERCASE") 
5. $I->amOnSubdomain("toupper.php") 
4. $I->click("Convert") 
3. $I->fillField("my_string","convert me to uppercase") 
2. $I->see("Can you see me?") 
1. $I->amOnPage("index.php") 


FAILURES! 
Tests: 1, Assertions: 2, Failures: 1. 

Может кто-то мне точку в правильном направлении, о том, как решить эту проблему? Я ценю это!

UPDATE

После возни с тестом, что, когда я пишу утверждение ищет текст в верхний регистр на toupper.php, EX) $ I-> см ('Something'); , тест не выполняется. Кажется, что если в какой-то момент тест завершится неудачно, все остальные утверждения потерпят неудачу. Даже когда я комментирую неудавшееся утверждение, все предыдущее утверждение не срабатывает при повторном тестировании. Так запутался!!

UPDATE2

Извините за несколько обновлений, но возни немного больше, я переключился браузеры для WebDriver от светлячок хрому. Все мои тесты проходят безупречно каждый раз. Странно, что есть только проблемы с firefox.

+0

Вам не нужно amOnSubdomain. – Naktibalda

+0

@Naktibalda, я прокомментировал amOnSubdomain, но тест все еще не удается. – JPerkins

ответ

0

Попробуйте ввести $I->pauseExecution(); в тестовый код непосредственно перед сбоем. Затем вы можете легко увидеть, что происходит в окне браузера непосредственно перед сбоем. Возможно, у вас возникла проблема с сохранением данных Firefox в форме.

Смежные вопросы