1
0

record.pl 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #! /usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Cwd qw/abs_path/;
  5. my $this_file = abs_path(__FILE__);
  6. my $srd_folder = $this_file;
  7. $srd_folder =~ s/t\/bin\/record\.pl//;
  8. resetEnv();
  9. startServer();
  10. print 'Cleaning...and building...
  11. ';
  12. print `cd $srd_folder && dzil build`;
  13. if ($^O eq 'linux') {
  14. print "Headless and need a webdriver server started? Try\n\n\tDISPLAY=:1 xvfb-run --auto-servernum java -jar /usr/lib/node_modules/protractor/selenium/selenium-server-standalone-2.42.2.jar\n\n";
  15. }
  16. my @files = map {
  17. $srd_folder . $_
  18. } (
  19. 't/01-driver.t',
  20. 't/02-webelement.t',
  21. 't/Firefox-Profile.t'
  22. );
  23. my $srdLib = glob($srd_folder . 'Selenium-Remote-Driver*/lib');
  24. my $tLib = glob($srd_folder . 'Selenium-Remote-Driver*');
  25. my $executeTests = join( ' && ', map {
  26. 'perl -I' . $srdLib
  27. . ' -I' . $tLib
  28. . ' ' . $_
  29. } @files);
  30. my $export = $^O eq 'MSWin32' ? 'set' : 'export';
  31. print `$export WD_MOCKING_RECORD=1 && $executeTests`;
  32. resetEnv();
  33. sub startServer {
  34. if ($^O eq 'MSWin32') {
  35. system('start "TEMP_HTTP_SERVER" /MIN perl ' . $srd_folder . 't/http-server.pl');
  36. }
  37. else {
  38. system('perl ' . $srd_folder . 't/http-server.pl > /dev/null &');
  39. }
  40. }
  41. sub killServer {
  42. if ($^O eq 'MSWin32') {
  43. system("taskkill /FI \"WINDOWTITLE eq TEMP_HTTP_SERVER\"");
  44. }
  45. else {
  46. `ps aux | grep [h]ttp-server\.pl | awk '{print \$2}' | xargs kill`;
  47. }
  48. }
  49. sub resetEnv {
  50. `cd $srd_folder && dzil clean`;
  51. killServer();
  52. }