epic-s6ts
[kivitendo-erp.git] / t / test.pl
index fac0e41..ccdab40 100755 (executable)
--- a/t/test.pl
+++ b/t/test.pl
@@ -5,13 +5,24 @@ use strict;
 use Data::Dumper;
 use File::Find ();
 use Test::Harness qw(runtests execute_tests);
+use Getopt::Long;
 
 BEGIN {
-   $ENV{HARNESS_OPTIONS} = 'c';
-  unshift @INC, 'modules/override';
-  push    @INC, 'modules/fallback';
+  use FindBin;
+
+  unshift(@INC, $FindBin::Bin . '/../modules/override'); # Use our own versions of various modules (e.g. YAML).
+  push   (@INC, $FindBin::Bin . '/..');                  # '.' will be removed from @INC soon.
+
+  $ENV{HARNESS_OPTIONS} = 'c';
+
+  chdir($FindBin::Bin . '/..');
 }
 
+my @exclude_for_fast = (
+  't/001compile.t',
+  't/003safesys.t',
+);
+
 sub find_files_to_test {
   my @files;
   File::Find::find(sub { push @files, $File::Find::name if (-f $_) && m/\.t$/ }, 't');
@@ -20,12 +31,16 @@ sub find_files_to_test {
 
 my (@tests_to_run, @tests_to_run_first);
 
+GetOptions(
+  'f|fast' => \ my $fast,
+);
+
 if (@ARGV) {
   @tests_to_run       = @ARGV;
 
 } else {
   @tests_to_run_first = qw(t/000setup_database.t);
-  my %exclude         = map  { ($_ => 1)     } @tests_to_run_first;
+  my %exclude         = map  { ($_ => 1)     } @tests_to_run_first, (@exclude_for_fast)x!!$fast;
   @tests_to_run       = grep { !$exclude{$_} } sort(find_files_to_test());
 }