Sha256: d1ab5299937d0a8849443a27ad052ddc09389fb4f79240878264f6c24fb4a149
Contents?: true
Size: 1.56 KB
Versions: 4
Compression:
Stored size: 1.56 KB
Contents
require 'pact/tasks' Pact::VerificationTask.new(:stubbing) do | pact | pact.uri './spec/support/stubbing.json', :pact_helper => './spec/support/stubbing.rb' end namespace :pact do desc 'Runs pact tests against a sample application, testing failure and success.' task :tests => ['pact:verify:stubbing'] do require 'pact/provider/pact_spec_runner' require 'open3' silent = true puts "Running task pact:tests" # Run these specs silently, otherwise expected failures will be written to stdout and look like unexpected failures. result = Pact::Provider::PactSpecRunner.new([{ uri: './spec/support/test_app_pass.json' }], silent: silent).run fail 'Expected pact to pass' unless (result == 0) result = Pact::Provider::PactSpecRunner.new([{ uri: './spec/support/test_app_fail.json', pact_helper: './spec/support/pact_helper.rb' }], silent: silent).run fail 'Expected pact to fail' if (result == 0) expect_to_pass "bundle exec rake pact:verify" expect_to_pass "bundle exec rake pact:verify:at[./spec/support/test_app_pass.json]" expect_to_fail "bundle exec rake pact:verify:at[./spec/support/test_app_fail.json]" puts "Task pact:tests completed succesfully." end def expect_to_fail command success = execute_command command fail "Expected '#{command}' to fail" if success end def expect_to_pass command success = execute_command command fail "Expected '#{command}' to pass" unless success end def execute_command command result = nil Open3.popen3(command) {|stdin, stdout, stderr, wait_thr| result = wait_thr.value } result.success? end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
pact-1.0.32 | tasks/pact-test.rake |
pact-1.0.31 | tasks/pact-test.rake |
pact-1.0.30 | tasks/pact-test.rake |
pact-1.0.29 | tasks/pact-test.rake |