Use unique test directories for each trace test

This allows tests to be run in parallel, since it avoids deleting
some of the symlinks that other tests expect to be there.
This commit is contained in:
Andy Allan 2019-11-27 14:57:49 +01:00
parent 8407c0dd98
commit 979a474c68
3 changed files with 39 additions and 6 deletions

View file

@ -3,9 +3,20 @@ require "minitest/mock"
module Api
class TracesControllerTest < ActionController::TestCase
# Use temporary directories with unique names for each test
# This allows the tests to be run in parallel.
def setup
@gpx_trace_dir_orig = Settings.gpx_trace_dir
@gpx_image_dir_orig = Settings.gpx_image_dir
Settings.gpx_trace_dir = Dir.mktmpdir("trace", Rails.root.join("test/gpx"))
Settings.gpx_image_dir = Dir.mktmpdir("image", Rails.root.join("test/gpx"))
end
def teardown
File.unlink(*Dir.glob(File.join(Settings.gpx_trace_dir, "*.gpx")))
File.unlink(*Dir.glob(File.join(Settings.gpx_image_dir, "*.gif")))
FileUtils.remove_dir(Settings.gpx_trace_dir)
FileUtils.remove_dir(Settings.gpx_image_dir)
Settings.gpx_trace_dir = @gpx_trace_dir_orig
Settings.gpx_image_dir = @gpx_image_dir_orig
end
##

View file

@ -2,9 +2,20 @@ require "test_helper"
require "minitest/mock"
class TracesControllerTest < ActionController::TestCase
# Use temporary directories with unique names for each test
# This allows the tests to be run in parallel.
def setup
@gpx_trace_dir_orig = Settings.gpx_trace_dir
@gpx_image_dir_orig = Settings.gpx_image_dir
Settings.gpx_trace_dir = Dir.mktmpdir("trace", Rails.root.join("test/gpx"))
Settings.gpx_image_dir = Dir.mktmpdir("image", Rails.root.join("test/gpx"))
end
def teardown
File.unlink(*Dir.glob(File.join(Settings.gpx_trace_dir, "*.gpx")))
File.unlink(*Dir.glob(File.join(Settings.gpx_image_dir, "*.gif")))
FileUtils.remove_dir(Settings.gpx_trace_dir)
FileUtils.remove_dir(Settings.gpx_image_dir)
Settings.gpx_trace_dir = @gpx_trace_dir_orig
Settings.gpx_image_dir = @gpx_image_dir_orig
end
##