record.pl 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #! /usr/bin/perl
  2. use strict;
  3. use warnings;
  4. unless (-d "t" && -f "dist.ini" && -f "t/01-driver.t" && -f "t/02-webelement.t") {
  5. die "Please run this from the root of the repo.";
  6. }
  7. resetEnv();
  8. startServer();
  9. print 'Cleaning...and building...
  10. ';
  11. print `dzil clean`;
  12. print `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.40.0.jar\n\n";
  15. }
  16. my $srdLib = glob('Selenium-Remote-Driver*/lib');
  17. my @files = (
  18. 't/01-driver.t',
  19. 't/02-webelement.t',
  20. # 't/Firefox-Profile.t'
  21. );
  22. my $export = $^O eq 'MSWin32' ? 'set' : 'export';
  23. my $executeTests = join( ' && ', map { 'perl -I' . $srdLib . ' ' . $_ } @files);
  24. print `$export WD_MOCKING_RECORD=1 && $executeTests`;
  25. resetEnv();
  26. sub startServer {
  27. if ($^O eq 'MSWin32') {
  28. system("start \"TEMP_HTTP_SERVER\" /MIN perl t/http-server.pl");
  29. } else {
  30. system("perl t/http-server.pl > /dev/null &");
  31. }
  32. }
  33. sub killServer {
  34. if ($^O eq 'MSWin32') {
  35. system("taskkill /FI \"WINDOWTITLE eq TEMP_HTTP_SERVER\"");
  36. }
  37. else {
  38. `ps aux | grep [h]ttp-server\.pl | awk '{print \$2}' | xargs kill`;
  39. }
  40. }
  41. sub resetEnv {
  42. `dzil clean`;
  43. killServer();
  44. }