5 Einträge, 1 Seite |
QuoteLeider wartet das Hauptprogramm nicht das ende des Testscripts ab und platziert die Ergebnisse die ich mithilfe von Test::More erzeuge nach Ablauf des Hauptprogramms.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#!/usr/bin/perl -w BEGIN{ use strict; use rcconfig; use Test::More tests =>1; } END { # Selenium RC-Config my $rcserver = rcconfig->new(); my $rchost = $rcserver->get_rchost(); my $rcport = $rcserver->get_rcport(); my $rcbrowser = $rcserver->get_rcbrowser(); my $rcurl = $rcserver->get_rcurl(); my $obj = WWW::Selenium -> new(host => $rchost, port => $rcport, browser => $rcbrowser, browser_url => $rcurl); $obj->start(); is($obj->open("/cosmo_90/"),'OK','Domain oeffnen'); $obj->stop(); } 1;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
################################################## # eigene Klassen/Dateien/Module einbinden und Existenz überprüfen my @required_config_files = ("test_definitions", "rcconfig"); # zu überprüfende Module/Klassen my $file; # Hilfsvariable foreach $file (@required_config_files){ # für jedes angegebene Modul eval"use $file"; # Versuche Modul zu laden if($@){# wenn es einen Fehler beim laden des Moduls gibt, Fehlermeldung ausgeben print "<p class=\"error\"><b>$file</b> - Datei/Modul konnte nicht geladen werden:<br /> $@ <br /></p>\n"; } } if($@){ # wenn es beim laden der Konfiguration Fehler gab print "</body></html>\n"; # HTML-Ende ausgeben exit; # Programm beenden } else{ print"<p>Konfiguration wurde erfolgreich geladen</p>"; } # Einbinden der Testscript-Konfiguration my $test_def = test_definitions->new(); my $test_ref = $test_def->getTests(); ########################################## # überprüfen der Test-Script-Configuration und Ausführung der Tests my %tests = %$test_ref; # Test-Definitionen dereferenzieren my $test; # Hilfsvariable für Tests-Hash my $key; # Hilfsvariable für Tests-Hash my @errors; # Fehler-Container my $error; # Hilfsvariable zur Fehlerausgabe my $UA = new LWP::UserAgent; my $count_tests = keys %tests; # Zählvariable my $count_ok = 0;# Zählvariable zum überprüfen erfolgreicher Tests my $count_fail = 0; # Zählvariable für Fehler my $config_error_flag; # Variable zum markieren fehlerhafter Test-Konfigurationen my $script_error_flag; # Variable zum markieren fehlender Scripte my $script_file; # Alle zu überprüfenden Keys festlegen my @required_keys = ('title','legend','type'); # hier wird jeder einzelne Schlüssel des Tests überprüft foreach $test (sort keys %tests){ # jeden einzelnen Test holen $config_error_flag = 0; # Fehler-Flags zurücksetzen (könnte aus vorhergehenden Überprüfungen gesetzt sein) $script_error_flag = 0; my @missing_keys = (); # Hilfsarrays Script- und Konfigurations-Überprüfung my @missing_scripts = (); foreach $key (@required_keys){ # für jeden Schlüssel unless($tests{$test}->{$key}){ # Schlüssel des geholten Tests überprüfen # falls nicht gesetzt oder nicht vorhanden zur Liste fehlender schlüssel hinzufügen push(@missing_keys,$key); $config_error_flag = 1; # und Test als Fehlerhaft konfiguriert markieren } } # Überprüfen ob Test-Script vorhanden $script_file = "$source_cgi$dir_suite$script_dir/".$tests{$test}->{type}."/$test"; # generierung vollständiger Dateiname unless(-e $script_file){ # wenn Datei nicht vorhanden push(@missing_scripts,$test); # Dateinamen zur Liste fehlender Dateien kopieren $script_error_flag = 1; # Test als Script-Fehlend markieren } if($config_error_flag){ # überprüfen ob es Konfigurationsfehler gab # falls ja, Testbezogene Fehlermeldung generieren my $errStr = "$test: configuration: Keys not defined: ".join(',',@missing_keys)."<br>"; # Fehler-Meldung zur Fehler-Liste hinzufügen push(@errors,$errStr); unless($script_error_flag){ # wenn keine Scripte Fehlen next; # zum nächsten Test springen } } if($script_error_flag){ # Überprüfen ob Script gefehlt hat my $errStr = "$test: Script: File not found: ".join(',',@missing_scripts)."<br>"; push(@errors,$errStr); next; } ############################################### # An dieser Stelle wird der Test dann ausgeführt (zB per require f_nl_order.cgi) my @results = (); print "<p class=\"ok\">$test:"; print"<ul>"; foreach $key (sort keys %{$tests{$test}}){ print"<li>$key: $tests{$test}->{$key}</li>"; } print"</ul></p>"; if(require $script_file){ $count_ok++; } } # Ausgabe Anzahl der definierten Tests print"Anzahl definierter Tests: $count_tests<br>"; # Ausgabe erfolgreicher Tests print "Anzahl erfolgreich abgeschlossener Testst: $count_ok"; # Ausgabe der Fehler $count_fail = @errors; # Fehleranzahl ermitteln print"<p class=\"error\">Es gab $count_fail Fehler:<br>"; # Fehleranzahl ausgeben foreach $error (@errors){ # für jede eingetragene Fehlermeldung print $error; # diese ausgeben } print"</p>"; # Ende HTML print "</body></html>\n";
5 Einträge, 1 Seite |