Skip to content

Commit

Permalink
Switch test automation to xctasks
Browse files Browse the repository at this point in the history
  • Loading branch information
Blake Watters committed Jun 10, 2014
1 parent 4be1629 commit c4e40ba
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 32 deletions.
3 changes: 2 additions & 1 deletion Gemfile
Expand Up @@ -5,5 +5,6 @@ gem "bundler", "~> 1.6.1"
gem "sinatra", '~> 1.4.0'
gem "sinatra-contrib", '~> 1.4.0'
gem "thin", "~> 1.5.0"
gem 'debugger', '~> 1.6.0'
gem 'cocoapods', '~> 0.33.1'
gem 'xctasks', '~> 0.2.1'
gem 'xcpretty', '~> 0.1.6'
12 changes: 4 additions & 8 deletions Gemfile.lock
Expand Up @@ -34,14 +34,7 @@ GEM
netrc
cocoapods-try (0.3.0)
colored (1.2)
columnize (0.3.6)
daemons (1.1.9)
debugger (1.6.2)
columnize (>= 0.3.1)
debugger-linecache (~> 1.2.0)
debugger-ruby_core_source (~> 1.2.3)
debugger-linecache (1.2.0)
debugger-ruby_core_source (1.2.3)
escape (0.0.4)
eventmachine (1.0.3)
fuzzy_match (2.0.4)
Expand Down Expand Up @@ -79,15 +72,18 @@ GEM
xcodeproj (0.17.0)
activesupport (~> 3.0)
colored (~> 1.2)
xcpretty (0.1.6)
xctasks (0.2.1)

PLATFORMS
ruby

DEPENDENCIES
bundler (~> 1.6.1)
cocoapods (~> 0.33.1)
debugger (~> 1.6.0)
rakeup (~> 1.1.0)
sinatra (~> 1.4.0)
sinatra-contrib (~> 1.4.0)
thin (~> 1.5.0)
xcpretty (~> 0.1.6)
xctasks (~> 0.2.1)
39 changes: 16 additions & 23 deletions Rakefile
@@ -1,7 +1,8 @@
require 'rubygems'
require 'bundler/setup'
Bundler.setup
require 'xctasks/test_task'
require 'rakeup'
require 'debugger'

RakeUp::ServerTask.new do |t|
t.port = 4567
Expand All @@ -10,39 +11,31 @@ RakeUp::ServerTask.new do |t|
t.server = :thin
end

namespace :test do
task :prepare do
system(%Q{mkdir -p "RestKit.xcworkspace/xcshareddata/xcschemes" && cp Tests/Schemes/*.xcscheme "RestKit.xcworkspace/xcshareddata/xcschemes/"})
end
XCTasks::TestTask.new(:test) do |t|
t.workspace = 'RestKit.xcworkspace'
t.schemes_dir = 'Tests/Schemes'
t.runner = :xcpretty
t.actions = %w{test}

desc "Run the unit tests for iOS"
task :ios => :prepare do
$ios_success = system("xctool -workspace RestKit.xcworkspace -scheme RestKitTests -sdk iphonesimulator test -test-sdk iphonesimulator ONLY_ACTIVE_ARCH=NO")
t.subtask(ios: 'RestKitTests') do |s|
s.sdk = :iphonesimulator
end

desc "Run the unit tests for OS X"
task :osx => :prepare do
$osx_success = system("xctool -workspace RestKit.xcworkspace -scheme RestKitFrameworkTests -sdk macosx test -test-sdk macosx")
t.subtask(osx: 'RestKitFrameworkTests') do |s|
s.sdk = :macosx
end

end

task default: 'test'

namespace :test do
# Provides validation that RestKit continues to build without Core Data. This requires conditional compilation that is error prone
task :building_without_core_data do
system("cd Examples/RKTwitter && pod install")
system("xctool -workspace Examples/RKTwitter/RKTwitter.xcworkspace -scheme RKTwitterCocoaPods -sdk iphonesimulator clean build ONLY_ACTIVE_ARCH=NO")
end
end

desc 'Run all the RestKit tests'
task :test => ['test:ios', 'test:osx'] do
puts "\033[0;31m!! iOS unit tests failed" unless $ios_success
puts "\033[0;31m!! OS X unit tests failed" unless $osx_success
if $ios_success && $osx_success
puts "\033[0;32m** All tests executed successfully"
else
exit(-1)
end
end

task :default => ["server:autostart", :test, "server:autostop"]

def restkit_version
Expand Down

0 comments on commit c4e40ba

Please sign in to comment.