From 3f29eef5b0efc778c38ec0d564af573db345f38f Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Tue, 9 Aug 2016 10:49:07 +0100 Subject: Generate unique config per test run. This allows multiple test suites to run simultaneously (beforehand, a second run would overwrite the same config file and lose its database connection). Clean up the created config file on exit. --- perllib/FixMyStreet/TestAppProve.pm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'perllib/FixMyStreet/TestAppProve.pm') diff --git a/perllib/FixMyStreet/TestAppProve.pm b/perllib/FixMyStreet/TestAppProve.pm index 75e9fe0a4..f2584fc33 100644 --- a/perllib/FixMyStreet/TestAppProve.pm +++ b/perllib/FixMyStreet/TestAppProve.pm @@ -2,6 +2,8 @@ use strict; use warnings; package FixMyStreet::TestAppProve; use App::Prove; +use sigtrap qw(handler signal_handler normal-signals); + use YAML (); use Path::Tiny 'path'; use Test::PostgreSQL; @@ -18,6 +20,19 @@ see bin/run-tests for usage =cut +sub cleanup { + unlink "conf/general.test-autogenerated.$$.yml"; +} + +sub signal_handler { + cleanup(); + exit(0); +} + +END { + cleanup(); +} + sub run { my ($class, @args) = @_; local @ARGV = @args; @@ -71,7 +86,7 @@ sub run { $config->{FMS_DB_PASS} = ''; } - my $config_out = 'general.test-autogenerated'; + my $config_out = "general.test-autogenerated.$$"; path("conf/$config_out.yml")->spew( YAML::Dump($config) ); local $ENV{FMS_OVERRIDE_CONFIG} = $config_out; -- cgit v1.2.3