Pārlūkot izejas kodu

Add easier way to generate recordings

gempesaw 11 gadi atpakaļ
vecāks
revīzija
226a021610
3 mainītis faili ar 31 papildinājumiem un 40 dzēšanām
  1. 0 20
      t/01-driver.t
  2. 0 20
      t/02-webelement.t
  3. 31 0
      t/bin/generate-recordings.pl

+ 0 - 20
t/01-driver.t

@@ -38,16 +38,6 @@ if (!$record && !(-e "t/mock-recordings/$mock_file"))
 }
 t::lib::MockSeleniumWebDriver::register($record,"t/mock-recordings/$mock_file");
 
-# Start our local http server
-if ($^O eq 'MSWin32' && $record)
-{
-   system("start \"TEMP_HTTP_SERVER\" /MIN perl t/http-server.pl");
-}
-elsif ($record)
-{
-    system("perl t/http-server.pl > /dev/null &");
-}
-
 my $driver = new Selenium::Remote::Driver(browser_name => 'firefox');
 my $website = 'http://localhost:63636';
 my $ret;
@@ -242,14 +232,4 @@ QUIT: {
         ok((not defined $driver->{'session_id'}), 'Killed the remote session');
       }
 
-# Kill our HTTP Server
-if ($^O eq 'MSWin32' && $record)
-{
-   system("taskkill /FI \"WINDOWTITLE eq TEMP_HTTP_SERVER\"");
-}
-elsif ($record)
-{
-    `ps aux | grep http-server\.pl | grep perl | awk '{print \$2}' | xargs kill`;
-}
-
 done_testing;

+ 0 - 20
t/02-webelement.t

@@ -38,16 +38,6 @@ if (!$record && !(-e "t/mock-recordings/$mock_file"))
 }
 t::lib::MockSeleniumWebDriver::register($record,"t/mock-recordings/$mock_file");
 
-# Start our local http server
-if ($^O eq 'MSWin32' && $record)
-{
-   system("start \"TEMP_HTTP_SERVER\" /MIN perl t/http-server.pl");
-}
-elsif ($record)
-{
-    system("perl t/http-server.pl > /dev/null &");
-}
-
 my $driver = new Selenium::Remote::Driver(browser_name => 'firefox');
 my $website = 'http://localhost:63636';
 my $ret;
@@ -136,14 +126,4 @@ QUIT: {
         ok((not defined $driver->{'session_id'}), 'Killed the remote session');
       }
 
-# Kill our HTTP Server
-if ($^O eq 'MSWin32' && $record)
-{
-   system("taskkill /FI \"WINDOWTITLE eq TEMP_HTTP_SERVER\"");
-}
-elsif ($record)
-{
-    `ps aux | grep http-server\.pl | grep perl | awk '{print \$2}' | xargs kill`;
-}
-
 done_testing;

+ 31 - 0
t/bin/generate-recordings.pl

@@ -0,0 +1,31 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+use IPC::Open2;
+
+unless (-d "t" && -f "dist.ini" && -f "t/01-driver.t" && -f "t/02-webelement.t") {
+    die "Please run this from the root of the repo.";
+}
+
+startServer();
+print `dzil build`;
+print `export WD_MOCKING_RECORD=1 && perl -I"Selenium-Remote-Driver/lib" -w t/01-driver.t & perl -I"Selenium-Remote-Driver/lib" -w t/02-webelement.t & wait`;
+killServer();
+
+sub startServer {
+    if ($^O eq 'MSWin32') {
+        system("start \"TEMP_HTTP_SERVER\" /MIN perl t/http-server.pl");
+    } else {
+        system("perl t/http-server.pl > /dev/null &");
+    }
+}
+
+sub killServer {
+    if ($^O eq 'MSWin32') {
+        system("taskkill /FI \"WINDOWTITLE eq TEMP_HTTP_SERVER\"");
+    }
+    else {
+        `ps aux | grep http-server\.pl | grep perl | awk '{print \$2}' | xargs kill`;
+    }
+}