Sonntag, Mai 31, 2020

Netbeans „keine tests ausgeführt“

Ich habe ein php Projekt mit unit-tests enthalten. Ich benutze Netbeans für die Entwicklung und hätte gerne eine phpunit Integration in meine IDE. Wenn ich phpunit von der Kommandozeile, funktioniert es. , Wenn ich drücken Sie Alt+F6 zum ausführen von tests in Netbeans keine tests, bekomme ich die Meldung:

Keine tests ausgeführt (Vielleicht ist ein Fehler aufgetreten, überprüfen Sie im Ausgabe-Fenster).

Struktur (es ist ein Zend-Framework-2-Modul):

Foo/
  src/
    Foo/
      Bar.php
      Baz.php
  tests/
    Foo/
      BarTest.php
    bootstrap.php
    phpunit.xml
  Module.php
  autoload_register.php

Inhalt BarTest.php

namespace Foo;

use PHPUnit_Framework_TestCase as TestCase;

class BarTest extends TestCase
{
    public function testIsWorking ()
    {
        $this->assertTrue(true);
    }
}

Meine phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="bootstrap.php">
    <testsuite name="Foo">
        <directory>./</directory>
    </testsuite>
</phpunit>

Meine bootstrap.php:

//Set error reporting pretty high
error_reporting(E_ALL | E_STRICT);

//Get base, application and tests path
define('BASE_PATH',  dirname(__DIR__));

//Load autoloader
require_once BASE_PATH . '/autoload_register.php';

In der Netbeans-Projekt-Eigenschaften habe ich versucht:

  1. Um die tests Verzeichnis zu Foo/tests (dies ist erforderlich, glaube ich)
  2. Zu setzen, speziell die bootstrap-Datei (nicht nötig denke ich)
  3. Zu setzen, insbesondere die XML-Konfigurations-Datei (nicht nötig denke ich)
  4. Zu setzen, die speziell für die Ausführung aller *Test-Dateien (nicht nötig denke ich)

Wie kann ich sicherstellen, Netbeans ausführen kann, meine phpunit tests?

  • Haben Sie versucht, läuft phpunit --bootstrap bootstrap.php Foo/tests ? Weil das ist, was die IDE letztendlich tut

4 Kommentare

  1. 3

    Können Sie einfach setzen Sie all dies in Ihre PHPUnit bootstrap.php:

    <?php
    
    error_reporting(E_ALL | E_STRICT);
    ini_set('display_errors', '1');
    ini_set('display_startup_errors', '1');
  2. 0

    Das problem ist, dass Netbeans erwarten, dass alle tests, die sich in einer Stamm-Projekt-Ordner. Wenn es nicht auf diese Weise getan, Code Coverage und andere Funktionen nicht korrekt arbeiten.
    Sehen Verbesserung für weitere Informationen.

    Kann dieses problem gelöst werden erstellen Sie benutzerdefinierte testSuite:

    • Erstellen Sie das Verzeichnis „Tests“ oder „Prüfungen“ in Ihrem root-Projekt Ordner wenn es nicht noch erstellt.
    • Datei erstellen TestSuite.php in diesem Ordner „test“
    • Fügen Sie diese TestSuite.php in Ihrem Netbeans Projekt Einstellungen.
    <?php
    
    class TestSuite extends PHPUnit_Framework_TestSuite
    {
        public static function suite()
        {
            $suite = new TestSuite();
    
            $file = '/Foo/tests/Foo/BarTest.php';
    
            echo 'Adding test: ' . $file . "\n";
            $suite->addTestFile($file);
    
            //add here algorithm that will search and add all test files from your /tests directory
    
        return $suite;
    
    }

    Netbeans 7.2 haben nette feature laufen alle Tests in einem separaten Verzeichnis.

  3. 0

    Aber ich hatte error_reporting auf einem hohen Niveau, das PHP-CLI nicht display_errors eingeschaltet. Das war es, so jetzt habe ich meine Berichterstattung zurück…

    • Können Sie erklären, was das bedeutet und wie kann ich das machen? Ich bin auch immer Perhaps an error occurred, verify in Output window. Fehler. Ich bin völlig neu zu PHPUnitTest.
    • Die bootstrap.php Datei enthalten error_reporting(E_ALL | E_STRICT); aber nicht ini_set('display_errors', '1');. Also wenn die Fehler gemeldet wurden, wurden Sie nicht angezeigt. Einstellung auch dieser zeigte mir den Fehler.
    • Danke für Ihre Antwort. Können Sie mir sagen, wo sollte ich diese finden bootstrap.php Datei? Ich bekomme so viele bootstrap.php Dateien im suchergebnis und nicht wissen, was sollte ich ändern.
  4. 0

    NetBeans ist nicht zu finden, der autoloader Klassen. Dann, in den Projekt-Einstellungen müssen Sie sagen, was die autoloader-Klasse, bootstrap, etc.

    In meinem Fall ging nur bei: Projekt-Eigenschaften -> Testen -> PHPUnit.
    Ich habe die option „Use Bootstrap“, und erzählte den Pfad der bootstrap.

    Meiner bootstrap-Datei hat der autoloader dann alle meine test-Klassen wurden ohne Fehler ausgeführt.

Kostenlose Online-Tests