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

1voto

CruiZen Punkte 172

Ich habe festgestellt, dass das folgende Beispiel aus dem PHPUnit-Tutorial funktionierte, während der gleiche Fehler in dem von mir geschriebenen Test auftrat. Die Lösung war eine Überraschung. Stellen Sie sicher, dass sich Ihre Klasse innerhalb einer <?php .. ?> Block und nicht ein <? .. ?> Block im Skript.

<?php
require_once 'PHPUnit/Framework.php';

class StackTest extends PHPUnit_Framework_TestCase
{
    public function testPushAndPop()
    {
        $stack = array();
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}
?>

1voto

mosid Punkte 944

Ich habe dieses Problem folgendermaßen gelöst:

  1. Stellen Sie sicher, dass die curl-Erweiterung für php installiert ist, z.B. für ubuntu sudo apt-get install php5-curl
  2. Eingabe sudo pear install phpunit/PHPUnit_Selenium

Danach sollten Sie die fehlende Datei installiert haben

Fröhliches Codieren...

1voto

Slava Nikoolin Punkte 11

Versuchen Sie es:

class WebTest extends \PHPUnit_Extensions_Selenium2TestCase

Es kann ein Problem mit dem Namensraum sein, so wie es bei mir der Fall war.

0voto

Nun, wenn ich Inline-Befehl verwenden: wenn lauching Test aus PhPunit dir ich den Fehler haben, während whent starten es von Test-Verzeichnis ich havne't den Fehler ...

aber ich habe immer noch keinen Zugang zum Selenium Server ... soll ich ihn vorher starten oder nicht.

Wenn ja, ist es seltsam, dass wir kein Handle zu PhPUnit angeben müssen ...

0voto

JTHouseCat Punkte 445

Wenn er fehlschlägt, gibt er nicht immer die ausführlichsten Fehlermeldungen aus.

Denken Sie immer daran, auch Selenium zu starten, bevor Sie einen Test durchführen.

java -jar selenium-server-standalone-2.39.0.jar

Hier ist ein Beispiel für einen Code, der bei mir funktioniert hat. http://www.siteconsortium.com/h/p1.php?id=php002 . Offensichtlich gibt es viele verschiedene Möglichkeiten, die Testsuite zu schreiben und den Testfall zu starten, aber ich habe set_class_path verwendet, um die Klassenprobleme zunächst loszuwerden.

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