Sha256: f442d7da63c5bf7f70c935fac290548415243c19eea0f67a35322ab261bef9d1

Contents?: true

Size: 1.98 KB

Versions: 3

Compression:

Stored size: 1.98 KB

Contents

# frozen_string_literal: true

describe Rake::Funnel::Tasks::NUnit do # rubocop:disable RSpec/FilePath
  before do
    Rake::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(Rake::Funnel::Support::Mapper).as_null_object }
    let(:finder) { instance_double(Rake::Funnel::Support::Finder).as_null_object }

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

      allow(Rake::Funnel::Support::Mapper).to receive(:new).and_return(mapper)
      allow(Rake::Funnel::Support::Finder).to receive(:new).and_return(finder)
      allow(Rake::Funnel::Integration::TeamCity::NUnitPlugin).to receive(:setup)

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

    before do
      Rake::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(Rake::Funnel::Integration::TeamCity::NUnitPlugin).to have_received(:setup).with(subject.nunit)
    end

    it 'should use NUnit mapper' do
      expect(Rake::Funnel::Support::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(Rake::Funnel::Support::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

3 entries across 3 versions & 1 rubygems

Version Path
rake-funnel-0.24.0 spec/rake/funnel/tasks/nunit_spec.rb
rake-funnel-0.23.0 spec/rake/funnel/tasks/nunit_spec.rb
rake-funnel-0.22.3 spec/rake/funnel/tasks/nunit_spec.rb