Перейти к содержимому

Фотография

Подключение классов PHPUnit


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 frei_by

frei_by

    Постоянный участник

  • Members
  • PipPipPip
  • 177 сообщений
  • ФИО:Дмитрий

Отправлено 03 ноября 2010 - 09:34

Как подключить все классы phpunit в файл чтобы можно было его запускать не через командную строку а через веб сервер (apache к примеру)?

Имеется файл (взято из примеров на phpunit.de)
phpunit_s1.php
<?php
class StackTest extends PHPUnit_Framework_TestCase
{
    //тесты тесты...
}
?>

если запускать данный файл через комнадную строку, либо так:
$output = shell_exec('phpunit c:\\www_pub\\sel_s1.php');
то всё ок. Если запускать через cmd, то нужные классы подгуржаются автоматически.

Если обратится к файлу через броузер - то возвращает в броузер ошибку вида

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in C:\www_pub\phpunit_s1.php on line 3

Call Stack:
    0.0006     336432   1. {main}() C:\www_pub\phpunit_s1.php:0


оно и понятно, что класс не найден.
если добавить

require_once 'PHPUnit/Framework/Testcase.php';

то выдаст

Fatal error: Class 'PHPUnit_Framework_Assert' not found in C:\Program Files\PHP\pear\PHPUnit\Framework\TestCase.php on line 101

Call Stack:
    0.0003     337384   1. {main}() C:\www_pub\phpunit_s1.php:0
    0.0026     587976   2. require_once('C:\Program Files\PHP\pear\PHPUnit\Framework\TestCase.php') C:\www_pub\phpunit_s1.php:2

Т.е. начинается ситуация "бабка за дедку дедка за репку".

КАК правильно подключить весь фреймворк классов, чтобы в бруозер выводились результаты теста?
  • 0

#2 AlexandrDervish

AlexandrDervish

    Новый участник

  • Members
  • Pip
  • 1 сообщений

Отправлено 24 мая 2012 - 11:57

require_once 'PHPUnit/Autoload.php';
  • 0

#3 Лелик32

Лелик32

    Постоянный участник

  • Members
  • PipPipPip
  • 235 сообщений

Отправлено 04 июня 2012 - 10:57

У меня тоже возникли проблемы, надеюсь на помощь.

Использую Eclipse, PHPUnit находится в "C:/php/PEAR/PHPUnit".

Создал в IDE проект, затем папку lib. В папку lib разместил путь до директории с PHPUnit ("Include Path" -> "Configure Include Path..." -> вкладка "Libraries" -> кнопка "Add External Source Folder...").
Затем в проекте создал php-файл следующего содержания:

<?php

class newfile extends PHPUnit_Framework_TestCase {

	function setUp() {
		$this->setBrowser("*firefox");
		$this->setBrowserUrl("http://google.com/");
	}

	function testMyTestCase() {
		$this->open("/");
		$this->type("q", "selenium");
		$this->click("btnG");
		sleep("5");
		$this->assertTrue($this->isTextPresent("Selenium"));
	}

}
Ошибок нет, классы от PHPUnit видятся на ура. Запускаю файл на исполнение, в консоль выводятся следующее:

PHPUnit 3.6.11 by Sebastian Bergmann.
Fatal error: Call to undefined method newfile::setBrowser() in C:\Works\Eclipce\Phereo_site\tests\newfile.php on line 9

Я так понимаю, мне нужен файл класса PHPUnit_Extensions_SeleniumTestCase, но не знаю, где его взять.

UPD: разобрался, нужно было сделать следующее (нашел ответ только на зарубежном сайте):

pear install phpunit/phpunit_selenium

Но это проблему не решило, при запуске все равно вываливается эта же ошибка.
  • 0

#4 Gromozeka

Gromozeka

    Новый участник

  • Members
  • Pip
  • 31 сообщений
  • ФИО:Дмитрий

Отправлено 07 июня 2012 - 09:52

Напишу и про свою проблему. Использую NetBeans 7.2 beta + PHPUnit. Почему скатился до беты? Потому что она поддерживает php 5.4. Собственно проблема из-за нововведений. Появилась новая фича Traite которую активно используют наши программисты. Это просто контейнер с методами, который мы можем юзать в своих классах, здорово уменьшает код в классах. Написал простейший тест:

require_once 'PHPUnit/Autoload.php';
require_once 'D:\_SERVER\domains\compas\public_html/Validator.class.php';
require_once 'D:\_SERVER\domains\compas\public_html/BaseError.class.php';
class ValidatorsClassTest extends PHPUnit_Framework_TestCase{
    public function test_getErrstr()
    {
      $v = new Validator();
      $this->assertEquals('Нет ошибки', $v->getErrstr(0));
    }
На что получаю ошибку:

Fatal error: Trait 'Core_Trait_BaseError' not found in D:\_SERVER\domains\compas\public_html\Validator.class.php on line 16

По идее этот трейт подхватывается в классе и если я использую класс, то свободно могу пользоваться методами этого трейта. В чем проблема?
  • 0

#5 Gromozeka

Gromozeka

    Новый участник

  • Members
  • Pip
  • 31 сообщений
  • ФИО:Дмитрий

Отправлено 07 июня 2012 - 11:23

Решил проблему. В настройках (Выполнить->Установить конфигурацию проекта) PHPUnit нужно выбрать начальный файл загрузки index.php
  • 0

#6 Android_cn

Android_cn

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 31 июля 2012 - 19:17

а ктонибудь решил ету проблему в phpstorm?? там как то через bootstrap.php и phpunit.xml подключается, может кто то делал?? подскажите пожалуйста
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных