Method: Webhookdb::SpecHelpers::Citest.run_tests
- Defined in:
- lib/webhookdb/spec_helpers/citest.rb
.run_tests(folders) ⇒ Object
Run RSpec against the given folders, create a DatabaseDocument for the html results, and POST to Slack about it.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/webhookdb/spec_helpers/citest.rb', line 11 def self.run_tests(folders) out = StringIO.new err = StringIO.new folders = [folders] unless folders.respond_to?(:to_ary) args = folders.map { |f| "#{f}/" } args << "--format" args << "html" RSpec::Core::Runner.run(args, err, out) notifier = Webhookdb::Slack.new_notifier( force_channel: "#webhookdb-notifications", username: "CI Tests", icon_emoji: ":female-detective:", ) outstring = out.string result = Webhookdb::SpecHelpers::Citest.parse_rspec_html(outstring) unless result.ok? msg = "Errored or unparseable output running #{folders.join(', ')} tests:" \ "\nerror: #{err.string}\nout: #{outstring}" notifier.post text: msg return end url = self.put_results(result.html) payload = self.result_to_payload(result, url) notifier.post(payload) end |