Merge branch 'master' into origin-2035-arv-mount-tags-folders
authorPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 7 May 2014 15:05:21 +0000 (11:05 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 7 May 2014 15:05:21 +0000 (11:05 -0400)
1  2 
apps/workbench/test/test_helper.rb

index cd90d725c01bc0aafb84a2822559af014ad42d9e,797551e7fb5c0a3d49e3dba26bdf697d6ba8756a..05be43cb5fe9fe7daeb1a224238f5411bc0c8b40
@@@ -1,4 -1,24 +1,24 @@@
  ENV["RAILS_ENV"] = "test"
+ unless ENV["NO_COVERAGE_TEST"]
+   begin
+     require 'simplecov'
+     require 'simplecov-rcov'
+     class SimpleCov::Formatter::MergedFormatter
+       def format(result)
+         SimpleCov::Formatter::HTMLFormatter.new.format(result)
+         SimpleCov::Formatter::RcovFormatter.new.format(result)
+       end
+     end
+     SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter
+     SimpleCov.start do
+       add_filter '/test/'
+       add_filter 'initializers/secret_token'
+     end
+   rescue Exception => e
+     $stderr.puts "SimpleCov unavailable (#{e}). Proceeding without."
+   end
+ end
  require File.expand_path('../../config/environment', __FILE__)
  require 'rails/test_help'
  
@@@ -54,31 -74,36 +74,32 @@@ class ActiveSupport::TestCas
  end
  
  class ApiServerBackedTestRunner < MiniTest::Unit
 -  # Make a hash that unsets Bundle's environment variables.
 -  # We'll use this environment when we launch Bundle commands in the API
 -  # server.  Otherwise, those commands will try to use Workbench's gems, etc.
 -  @@APIENV = Hash[ENV.map { |key, val|
 -                    (key =~ /^BUNDLE_/) ? [key, nil] : nil
 -                  }.compact]
 -
    def _system(*cmd)
 -    if not system(@@APIENV, *cmd)
 -      raise RuntimeError, "#{cmd[0]} returned exit code #{$?.exitstatus}"
 +    Bundler.with_clean_env do
 +      if not system({'RAILS_ENV' => 'test'}, *cmd)
 +        raise RuntimeError, "#{cmd[0]} returned exit code #{$?.exitstatus}"
 +      end
      end
    end
  
    def _run(args=[])
      Capybara.javascript_driver = :poltergeist
      server_pid = Dir.chdir($ARV_API_SERVER_DIR) do |apidir|
+       ENV["NO_COVERAGE_TEST"] = "1"
        _system('bundle', 'exec', 'rake', 'db:test:load')
        _system('bundle', 'exec', 'rake', 'db:fixtures:load')
        _system('bundle', 'exec', 'rails', 'server', '-d')
        timeout = Time.now.tv_sec + 10
 -      begin
 +      good_pid = false
 +      while (not good_pid) and (Time.now.tv_sec < timeout)
          sleep 0.2
          begin
            server_pid = IO.read(SERVER_PID_PATH).to_i
 -          good_pid = (server_pid > 0) and (Process.kill(0, pid) rescue false)
 +          good_pid = (server_pid > 0) and (Process.kill(0, server_pid) rescue false)
          rescue Errno::ENOENT
            good_pid = false
          end
 -      end while (not good_pid) and (Time.now.tv_sec < timeout)
 +      end
        if not good_pid
          raise RuntimeError, "could not find API server Rails pid"
        end