class NUnit

Attributes

nuget_nunit_version[RW]
nuget_path[RW]
teamcity_nunit_version[RW]

Public Class Methods

new() click to toggle source
# File lib/nunitr/nunit.rb, line 7
def initialize()
        @teamcity_nunit_version = 'v4.0 x86 NUnit-2.5.3'
        @nuget_nunit_version = '2.6.0.12051'
        @nuget_path = './.nuget/NuGet.exe'                            
end

Public Instance Methods

category(name, tags) click to toggle source
# File lib/nunitr/nunit.rb, line 41
def category(name, tags)
        return '' if(tags.nil? or tags.empty?)
        return " /category-#{name}:#{tags.gsub(',', ';')}" if !ENV['teamcity.dotnet.nunitlauncher'].nil?
        
        return " /#{name}:#{tags}"
end
run(pattern, environment=nil, include=nil, exclude=nil) click to toggle source
# File lib/nunitr/nunit.rb, line 13
def run(pattern, environment=nil, include=nil, exclude=nil)
        glob_pattern = "**/[b][i][n]/Release/#{pattern}.dll"
        dlls = Dir.glob(glob_pattern)
        raise TestFilesNotFound, "No tests found for pattern #{glob_pattern}" if dlls.empty?

        if !environment.nil?
                dlls.each do |dll| 
                        config = File.dirname(dll) + "/App.#{environment}.config"
                        raise ConfigFileNotFound, "Config file #{config} not found" if !File.exists?(config)
                        sh "copy #{config} #{dll + '.config'}".gsub('/', '\\') 
                end  
        end

        includes = category('include', include)
        excludes = category('exclude', exclude)

        sh "#{runner} #{dlls.join(' ').strip}#{includes}#{excludes}"          
end
runner() click to toggle source
# File lib/nunitr/nunit.rb, line 32
def runner
        if ENV['teamcity.dotnet.nunitlauncher'].nil?
                sh "#{@nuget_path} install Nunit.Runners -o ./tools -Version #{@nuget_nunit_version}"
                return Dir.glob("./tools/*#{@nuget_nunit_version}/**/nunit-console.exe").last
        end
        
        return "#{ENV['teamcity.dotnet.nunitlauncher']} #{@teamcity_nunit_version}"
end