Проблема построения простейшего пакета из рабочих тестовых случаев - PullRequest
5 голосов
/ 26 сентября 2011

Я начал использовать модульное тестирование для своих программ PHP, и подумал, что Simpletest был таким же хорошим местом для погружения, как и любой другой. Я добавил файлы Simpletest на свой тестовый сервер и провел следующие тесты на своих пользовательских классах PDO:

<?php
require_once('../simpletest/autorun.php');
require_once('../includes/inc_sql.php');

class TestOfSQL extends UnitTestCase{
    function testRead(){
        ...
    }

    function testWriteAndDelete(){
        ...
    }
}
?>

Это все работает потрясающе. Я пытаюсь создать набор тестов, включающий (пока) только этот файл тестирования, следующим образом:

<?php
require_once('../simpletest/autorun.php');

class AllTests extends TestSuite {

    function __construct(){
        parent::__construct();
        $this->addFile('inc_sql_test.php');
    }
}

Это дает сбой и горит, и я получаю следующее показание:

Warning: include_once(inc_sql_test.php) [function.include-once]: failed to open stream: No such file or directory in E:\xampp\htdocs\historicMuncie\simpletest\test_case.php on line 382

Warning: include_once() [function.include]: Failed opening 'inc_sql_test.php' for inclusion (include_path='.;E:\xampp\php\PEAR') in E:\xampp\htdocs\historicMuncie\simpletest\test_case.php on line 382

Warning: file_get_contents(inc_sql_test.php) [function.file-get-contents]: failed to open stream: No such file or directory in E:\xampp\htdocs\historicMuncie\simpletest\test_case.php on line 418
all_tests.php
Fail: AllTests -> inc_sql_test.php -> Bad TestSuite [inc_sql_test.php] with error [No runnable test cases in [inc_sql_test.php]]
0/0 test cases complete: 0 passes, 1 fails and 0 exceptions.

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

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Я всегда съеживаюсь, когда вижу относительные пути в скриптах PHP.Это гораздо проще реализовать и поддерживать при использовании «полуабсолютных» путей, основанных на общем корне.Попробуйте:

$this->addFile( $_SERVER['DOCUMENT_ROOT'] . '/inc_sql_test.php' );
0 голосов
/ 25 октября 2011

Вы также можете сделать это:

$this->addFile(dirname(__FILE__) . '/inc_sql_test.php');

С уважением!

...