Hat jemand von euch bereits Erfahrung mit Unittest unter OXID?
Der Grund meiner Nachfrage ist, dass ich gerne mein Modul, an welchem ich gerade schraube, abtesten will, da es eventuell eine Zertifizierung erfahren soll und dafür gerne einen Oxid gerechten Weg wählen würde.
Nun liefert OXID jedoch auf seiner Seite über die Modul Zertifizierung nur sehr wenig Informationen.
Nun also eine Liste der Fragen, die für mich aufgetaucht sind:
Was muss abgestet werden um ein Modul zu zertifizieren (jetzt sagt bitte nicht 90% von allem…)?
Gibt es eine Möglichkeit eigene Modultests in die OXID Testsuite zu integrieren?
Oder soll man sich einen eigenen Unterordner [I]modules[/I] im Ordner [I]unit[/I] erstellen?
Ist eine alternative zur Option
--log-metrics
geplant? Dieses Feature ist ja in PHPUnit 3.4.15 als Deprecated markiert.
http://wiki.oxidforge.org/Certification/Modules scheint nicht mehr aktuell zu sein, meiner Meinung nach müsste man inzwischen in [I]Zeile 54[/I] seinen eigenen Unterordner (so dies denn die gewünschte Lösung ist um eigene Module zu testen) in dem Array
$aTestDirs
eintragen und dann die [I]Zeile 65[/I] editieren wie im Wiki beschrieben (dort ist [I]Zeile 34[/I] angegeben, als zu editierend, im Abschnitt [B]Tips & Tricks[/B])
Hat mal jemand die Tests von OXID durchlaufen lassen?
Für Antworten wäre ich sehr dankbar, ebenso für weiterführende Hinweise.
Also, wenn Dein Modul verhalten einer Klasse ändert, dann muss das Modul ja bei den Tests durchfallen, weil der Rückgabewert für die Tests ja ‘fehlerhaft’ bzw. anders ist.
In dem Fall würde ich:
if ( defined( 'OXID_PHP_UNIT' ) ) {
return parent::methodName($parameters);
}
machen.
Zu 2:
… und zusätzlich dann eigene Tests für mein Modul schreiben.
Diese Tests definieren eine weitere Konstante.
define('OXID_PHP_MYUNIT',true);
Die obige Prüfung sähe dann so aus:
if ( defined( 'OXID_PHP_UNIT' )&&!defined('OXID_PHP_MYUNIT') ) {
return parent::methodName($parameters);
}
Zu 4: Ist ein wiki, jeder kann es auf den aktuellen Stand bringen.
Zu 5: Ich nicht, alles reine Vermutung, kommt aber demnächst.
Das die Tests möglichst mit 100% bestehen sollen ist klar (wobei hier OXID nicht gut vorlegt, bekomme immer wieder F’s angezeigt, wenn ich die Tests durchlaufen lasse).
Meine Frage zielte eher daraufhin ab, was soll abgedeckt werden.
Da gibt es ja ganze Glaubenskriege darum, ob auch private Funktionen getestet werden soll.
Ob nur Unit Tests oder auch Integration Tests gefahren werden sollen.
Seleniumtests für die Templates, Ja oder Nein und so weiter.
Je nachdem, was genau als 90% Testabdeckung gilt von OXID Seite, ist es einfacher oder schwieriger eine Zertifizierung zu bekommen.
Danke, das scheint zu seien, was ich suche
Asche über mein Haupt, habe den Loginbutton am rechten oberen Bildrand übersehen…
Ist inzwischen geändert.
Sind die Selenium Tests überhaupt veröffentlicht? Wo?
Davon abgesehen ist Selenium fürs Backend ungeeignet, da es nicht mit Frames klarkommt.
Werden von oxid private Methoden (zB. oxConfig::_makeSafeModuleClassParents( $aClassChain, $sBaseModule )) getestet?
Pauschal würde ich mich an dieser Vorgabe dann halten… Es sei denn private Methoden, die schon mal Probleme verursacht haben - diese würde ich immer testen.
Aber was genaues dazu wirst Du wohl nur von OXID selber Erfahren.
…wobei hier OXID nicht gut vorlegt, bekomme immer wieder F’s angezeigt, wenn ich die Tests durchlaufen lasse…
Hier würde ich auch gerne ein Statement hören, ob das auch auf OXID-Seite so ist, oder nur bei Dir.
Ich hab bisher keine Selenium Tests gefunden, will aber nicht heißen, das es keine gibt.
Es geht ja auch nicht nur darum das Backend zu testen, sondern es kann ja eben so gut sein, das man eine View Klasse per Modul überlädt und dann dass entsprechende Template zu der View Klasse anpassen muss.
Dafür würde es ja durchaus Sinn machen Seleniumtests zur Verfügung stellen, nur ist es auch von OXID gefordert?
Mein Problem ist, das eine Spezifikation fehlt, was OXID erwartet für eine Zertifizierung und was man nicht braucht.
Es gibt zwar einen Quality Report, jedoch steht dort nicht drinne, ob Tests fehlschlagen und wie Incomplete Tests behandelt werden (werden die bei ihren grandiosen 90,68% Code Coverrage mitgezählt oder nicht?).
Dazu wäre ein Statement von OXID mal eine feine Sache