12 Stimmen

Wie kann ich diesen Fehler beheben? "Klasse PHPUnit_Extensions_SeleniumTestCase konnte nicht gefunden werden"

Ich versuche, einen SeleniumTestCase mit phpunit auszuführen, aber ich kann ihn nicht mit dem phpunit.bat-Skript zum Laufen bringen.

Mein Ziel ist es, phpunit mit Selenium RC in CruiseControl & phpUnderControl zu verwenden. So sieht der Test aus:

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class WebTest extends PHPUnit_Extensions_SeleniumTestCase
{
    protected function setUp()
    {
        $this->setBrowser('*firefox');
        $this->setBrowserUrl('http://www.example.com/');
    }

    public function testTitle()
    {
        $this->open('http://www.example.com/');
        $this->assertTitleEquals('Example Web Page');
    }
}

Ich habe auch PEAR im include_path und PHPUnit mit der Selenium-Erweiterung installiert. Ich habe diese mit dem Pear-Installer installiert, also nehme ich an, dass das nicht das Problem ist.

Für jede Hilfe wären wir sehr dankbar.

Danke, Remy

16voto

farinspace Punkte 7721

Ich hoffe, dass dies eine definitivere Antwort ist als die hier gegebenen (die mein Problem nicht gelöst haben). Wenn Sie diesen Fehler erhalten, überprüfen Sie Ihren PEAR-Ordner und sehen Sie nach, ob die Datei "SeleniumTestCase.php" tatsächlich vorhanden ist:

/PEAR/PHPUnit/Extensions/SeleniumTestCase.php

Wenn es NICHT der Fall ist, ist es am einfachsten, PHPUnit mit PEAR zu deinstallieren und neu zu installieren ...

pear uninstall phpunit/PHPUnit

pear uninstall phpunit/PHPUnit_Selenium

pear install phpunit/PHPUnit

Nachdem ich das oben genannte getan habe und nur die Einzelinstallation durchgeführt habe, wurde PHPUnit_Selenium auch automatisch installiert, ich bin mir nicht sicher, ob das typisch ist.

pear install phpunit/PHPUnit_Selenium

Siehe auch http://www.phpunit.de/manual/3.5/en/installation.html für PEAR-Kanal-Informationen, falls erforderlich...

6voto

Hier ist der Deal:

Wenn Sie ein Problem mit der Meldung "Class PHPUnit_Extensions_SeleniumTestCase could not be found in (testcase file name)" haben, müssen Sie die folgenden zwei Dinge tun:

1. Benennen Sie die Datei des Testfalls in den Namen der Klasse um, die sie enthält 2. Sie sollten phpunit aus dem Ordner mit Ihren Tests starten.

Das sollte Ihr Problem lösen.

Andrew

1voto

Ciaran Punkte 2174

Werfen Sie einen Blick auf einen der Kommentare im require_once-Eintrag im php-Handbuch.

http://ie.php.net/manual/en/function.require-once.php#62838

"require_once (und include_once für diese Angelegenheiten) ist langsam

Wenn Sie außerdem planen, Unit-Tests und Mock-Objekte zu verwenden (d.h. Mock-Klassen einzuschließen, bevor die echten in die zu testende Klasse eingeschlossen werden), wird es nicht funktionieren, da require() eine Datei und nicht eine Klasse lädt."

1voto

Remy Punkte 296

Ich habe die Datei, in der sich mein Test befand, einfach in "WebTest.php" umbenannt (der Name der darin enthaltenen Klasse) und der Test läuft jetzt einwandfrei.

1voto

scc Punkte 9643

Gehen Sie nicht davon aus, dass die Installation der Birne ohne Probleme verlaufen ist.

Ich hatte phpunit durch Birne installiert, aber trotz es sagen, die Installation ging gut, wenn ich in den Ordner sah, hatte ich alle diese Dateien, die mit .tmp beginnen, z.B. PHPUnit/Util/.tmpErrorHandler.php so natürlich, wenn ich einen Test zum ersten Mal lief es gab mir den gleichen Fehler wie oben. Nachdem ich mich vergewissert hatte, dass die Datei tatsächlich nicht vorhanden war, installierte ich PHPUnit manuell in denselben Ordner wie pear und leider war alles in Ordnung. Ich arbeite mit Mac/Leopard.

Vergessen Sie nicht, Selenim RC zu starten, indem Sie im Terminal java -jar /pfad/zur/datei/selenium-server.jar

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X