Sha256: d3b8746ddba7a46da6532f41904552680178304e2beb6dac4762e05be574f8e5

Contents?: true

Size: 1.82 KB

Versions: 5

Compression:

Stored size: 1.82 KB

Contents

# rubocop:disable RSpec/FilePath

include Rake
include Rake::Funnel
include Rake::Funnel::Integration::TeamCity
include Rake::Funnel::Support

describe Rake::Funnel::Tasks::NUnit do
  before do
    Task.clear
  end

  describe 'defaults' do
    its(:name) { should == :test }
    its(:args) { should == {} }
    its(:nunit) { should == 'nunit-console.exe' }
    its(:files) { should == %w(build/specs/**/*.dll build/specs/**/*.exe) }
  end

  describe 'execution' do
    let(:args) { {} }

    let(:mapper) { instance_double(Mapper).as_null_object }
    let(:finder) { instance_double(Finder).as_null_object }

    before do
      allow(subject).to receive(:sh)

      allow(Mapper).to receive(:new).and_return(mapper)
      allow(Finder).to receive(:new).and_return(finder)
      allow(NUnitPlugin).to receive(:setup)

      allow(Mono).to receive(:invocation).and_wrap_original do |_original_method, *args, &_block|
        args.compact
      end
    end

    before do
      Task[subject.name].invoke
    end

    it 'should use test assembly finder' do
      expect(finder).to have_received(:all)
    end

    it 'should set up TeamCity plugin' do
      expect(NUnitPlugin).to have_received(:setup).with(subject.nunit)
    end

    it 'should use NUnit mapper' do
      expect(Mapper).to have_received(:new).with(:NUnit)
    end

    it 'should map arguments' do
      expect(mapper).to have_received(:map).with(args)
    end

    it 'should use mono invocation' do
      expect(Mono).to have_received(:invocation).with(subject.nunit)
    end

    it 'should run with sh' do
      expect(subject).to have_received(:sh)
    end

    context 'with custom NUnit executable' do
      subject do
        described_class.new do |t|
          t.nunit = 'custom nunit.exe'
        end
      end

      its(:nunit) { should == 'custom nunit.exe' }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rake-funnel-0.21.0 spec/rake/funnel/tasks/nunit_spec.rb
rake-funnel-0.20.2 spec/rake/funnel/tasks/nunit_spec.rb
rake-funnel-0.20.1 spec/rake/funnel/tasks/nunit_spec.rb
rake-funnel-0.20.0 spec/rake/funnel/tasks/nunit_spec.rb
rake-funnel-0.19.0 spec/rake/funnel/tasks/nunit_spec.rb