George S. Baugh 10 лет назад
Родитель
Сommit
4962808a70
3 измененных файлов с 20 добавлено и 18 удалено
  1. 3 1
      bin/testrail-tests
  2. 4 4
      t/testrail-runs.t
  3. 13 13
      t/testrail-tests.t

+ 3 - 1
bin/testrail-tests

@@ -239,9 +239,11 @@ if ($opts{'match'}) {
         File::Find::find( sub { push(@realtests,$File::Find::name) if -f }, $opts{'match'} );
         @tests = grep {my $real = $_; grep { basename($real) eq $_ } @tests} @realtests; #XXX if you have dups in your tree, be-ware
     } else {
-        @tests = grep {my $fname = $_; grep { basename($_) eq $fname} glob($opts{'match'}."/*") } @tests;
+        #Handle special windows case -- glob doesn't prepend abspath
+        @tests = map {$^O eq 'MSWin32' ? $opts{'match'}."/$_" : $_ } grep {my $fname = $_; grep { basename($_) eq $fname} glob($opts{'match'}."/*") } @tests;
     }
 }
+
 @tests = map { abs_path($_) } @tests if $opts{'match'};
 print join("\n",@tests)."\n" if scalar(@tests);
 exit 0;

+ 4 - 4
t/testrail-runs.t

@@ -4,27 +4,27 @@ use warnings;
 use Test::More 'tests' => 8;
 
 #check status filters
-my @args = ($^X,qw{bin/testrail-runs --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j 'TestProject' --mock});
+my @args = ($^X,qw{bin/testrail-runs --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j "TestProject" --mock});
 my $out = `@args`;
 is($? >> 8, 0, "Exit code OK looking for runs with passes");
 chomp $out;
 like($out,qr/^TestingSuite\nOtherOtherSuite$/,"Gets run correctly looking for passes");
 
 #check status filters
-@args = ($^X,qw{bin/testrail-runs --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j 'TestProject' --mock --status passed});
+@args = ($^X,qw{bin/testrail-runs --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j "TestProject" --mock --status passed});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK looking for runs with passes, which should fail to return results");
 chomp $out;
 is($out,'',"Gets no runs correctly looking for passes");
 
-@args = ($^X,qw{bin/testrail-runs --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j 'CRUSH ALL HUMANS' --mock --status passed});
+@args = ($^X,qw{bin/testrail-runs --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j "CRUSH ALL HUMANS" --mock --status passed});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK looking for runs with passes");
 chomp $out;
 like($out,qr/SEND T-1000 INFILTRATION UNITS BACK IN TIME$/,"Gets run correctly looking for passes");
 
 #TODO check configs for real next time
-@args = ($^X,qw{bin/testrail-runs --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j 'TestProject' --mock --config testConfig});
+@args = ($^X,qw{bin/testrail-runs --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j "TestProject" --mock --config testConfig});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK looking for runs with passes");
 chomp $out;

+ 13 - 13
t/testrail-tests.t

@@ -1,67 +1,67 @@
 use strict;
 use warnings;
 
-use Test::More 'tests' => 20;
+use Test::More "tests" => 20;
 
 #check plan mode
-my @args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p 'GosPlan' -r 'Executing the great plan' -m t --config testConfig --mock --no-recurse});
+my @args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p "GosPlan" -r "Executing the great plan" -m t --config testConfig --mock --no-recurse});
 my $out = `@args`;
 is($? >> 8, 0, "Exit code OK running plan mode, no recurse");
 chomp $out;
 like($out,qr/skipall\.test$/,"Gets test correctly in plan mode, no recurse");
 
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p 'GosPlan' -r 'Executing the great plan' --config testConfig -m t --mock});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p "GosPlan" -r "Executing the great plan" --config testConfig -m t --mock});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK running plan mode, recurse");
 chomp $out;
 like($out,qr/skipall\.test$/,"Gets test correctly in plan mode, recurse");
 
 #check non plan mode
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -r 'TestingSuite' -m t --mock --no-recurse});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -r "TestingSuite" -m t --mock --no-recurse});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK running no plan mode, no recurse");
 chomp $out;
 like($out,qr/skipall\.test$/,"Gets test correctly in no plan mode, no recurse");
 
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -r 'TestingSuite' -m t --mock});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -r "TestingSuite" -m t --mock});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK running no plan mode, recurse");
 chomp $out;
 like($out,qr/skipall\.test$/,"Gets test correctly in no plan mode, recurse");
 
 #Negative case, filtering by config
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p 'GosPlan' -r 'Executing the great plan' -m t --mock --config testPlatform1});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p "GosPlan" -r "Executing the great plan" -m t --mock --config testPlatform1});
 $out = `@args`;
 isnt($? >> 8, 0, "Exit code not OK when passing invalid configs for plan");
 chomp $out;
 like($out,qr/no such run/i,"Gets test correctly in plan mode, recurse");
 
 #check assignedto filters
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p 'GosPlan' -r 'Executing the great plan' --mock --config 'testConfig' --assignedto teodesian});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p "GosPlan" -r "Executing the great plan" --mock --config "testConfig" --assignedto teodesian});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK when filtering by assignment");
 like($out,qr/skipall\.test$/,"Gets test correctly when filtering by assignment");
 
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p 'GosPlan' -r 'Executing the great plan' --mock --config 'testConfig' --assignedto billy});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p "GosPlan" -r "Executing the great plan" --mock --config "testConfig" --assignedto billy});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK when filtering by assignement");
 chomp $out;
-is($out,'',"Gets no tests correctly when filtering by wrong assignment");
+is($out,"","Gets no tests correctly when filtering by wrong assignment");
 
 #check status filters
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p 'GosPlan' -r 'Executing the great plan' -m t --mock --config 'testConfig' --status 'passed'});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p "GosPlan" -r "Executing the great plan" -m t --mock --config "testConfig" --status "passed"});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK when filtering by status");
 like($out,qr/skipall\.test$/,"Gets test correctly when filtering by status");
 
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p 'GosPlan' -r 'Executing the great plan' --mock --config 'testConfig' --status 'failed'});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -p "GosPlan" -r "Executing the great plan" --mock --config "testConfig" --status "failed"});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK when filtering by status");
 chomp $out;
-is($out,'',"Gets no tests correctly when filtering by wrong status");
+is($out,"","Gets no tests correctly when filtering by wrong status");
 
 #Verify no-match returns non path
-@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -r 'TestingSuite' --mock});
+@args = ($^X,qw{bin/testrail-tests --apiurl http://testrail.local --user "test@fake.fake" --password "fake" -j TestProject -r "TestingSuite" --mock});
 $out = `@args`;
 is($? >> 8, 0, "Exit code OK running no plan mode, no recurse");
 chomp $out;