Class: CodeClimate::TestReporter::ExceptionMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/code_climate/test_reporter/exception_message.rb

Constant Summary collapse

HTTP_STUBBING_MESSAGES =
{
  "VCR::Errors::UnhandledHTTPRequestError".freeze => VCRMessage,
  "WebMock::NetConnectNotAllowedError".freeze => WebMockMessage,
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(exception) ⇒ ExceptionMessage

Returns a new instance of ExceptionMessage.



36
37
38
# File 'lib/code_climate/test_reporter/exception_message.rb', line 36

def initialize(exception)
  @exception = exception
end

Instance Method Details

#messageObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/code_climate/test_reporter/exception_message.rb', line 40

def message
  parts = []
  parts << "Code Climate encountered an exception: #{exception_class}"
  if http_stubbing_exception
    message = http_stubbing_exception.new
    parts << "======"
    parts << "Hey! Looks like you are using #{message.library_name}, which will prevent the codeclimate-test-reporter from reporting results to codeclimate.com.
Add the following to your spec or test helper to ensure codeclimate-test-reporter can post coverage results:"
    parts << "\n" + message.instructions + "\n"
    parts << "======"
    parts << "If this doesn't work, please consult https://codeclimate.com/docs#test-coverage-troubleshooting"
    parts << "======"
  else
    parts << @exception.message
    @exception.backtrace.each do |line|
      parts << line
    end
  end
  parts.join("\n")
end