Restore execution of Unit Tests via Rake

This commit is contained in:
Blake Watters
2013-01-10 23:13:08 -05:00
parent 6b8a390cf5
commit 906e33dd55
4 changed files with 168 additions and 68 deletions

View File

@@ -6,9 +6,9 @@ GIT
GIT
remote: git://github.com/rayh/xcoder.git
revision: ce2b36ed9e2f44513d22d2389576616e72d802b4
revision: 4071b9f87acdb4fe4e25c3fc862d0ca45eac9b67
specs:
xcoder (0.1.12)
xcoder (0.1.15)
builder
json
nokogiri
@@ -17,21 +17,21 @@ GIT
GIT
remote: git://github.com/sinatra/sinatra.git
revision: 1e0a6472717f6ee5054ddd1e67d1af41b4f80c91
revision: 9984d0d2b3f1ea12273c6c25f8e102b2329f33e9
specs:
sinatra (1.4.0)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
rack (~> 1.4)
rack-protection (~> 1.3)
tilt (~> 1.3, >= 1.3.3)
GEM
remote: http://rubygems.org/
specs:
activesupport (3.2.9)
activesupport (3.2.11)
i18n (~> 0.6)
multi_json (~> 1.0)
addressable (2.3.2)
builder (3.1.3)
builder (3.1.4)
cocoapods (0.16.0)
activesupport (~> 3.2.6)
colored (~> 1.2)
@@ -51,7 +51,7 @@ GEM
debugger-ruby_core_source (~> 1.1.3)
debugger-linecache (1.1.2)
debugger-ruby_core_source (>= 1.1.1)
debugger-ruby_core_source (1.1.3)
debugger-ruby_core_source (1.1.6)
escape (0.0.4)
eventmachine (1.0.0)
faker (1.1.2)
@@ -62,23 +62,25 @@ GEM
faraday (>= 0.7.4, < 0.9)
hashie (1.2.0)
i18n (0.6.1)
json (1.7.5)
json (1.7.6)
mime-types (1.19)
multi_json (1.3.7)
multi_json (1.5.0)
multipart-post (1.1.5)
nokogiri (1.5.5)
octokit (1.18.0)
netrc (0.7.7)
nokogiri (1.5.6)
octokit (1.21.0)
addressable (~> 2.2)
faraday (~> 0.8)
faraday_middleware (~> 0.8)
faraday_middleware (~> 0.9)
hashie (~> 1.2)
multi_json (~> 1.3)
netrc (~> 0.7.7)
open4 (1.3.0)
plist (3.1.0)
rack (1.4.1)
rack-protection (1.2.0)
rack (1.4.3)
rack-protection (1.3.2)
rack
rake (0.9.5)
rake (0.9.6)
rest-client (1.6.7)
mime-types (>= 1.16)
thin (1.5.0)
@@ -87,6 +89,8 @@ GEM
rack (>= 1.0.0)
tilt (1.3.3)
xcodeproj (0.4.0)
activesupport (~> 3.2.6)
colored (~> 1.2)
PLATFORMS
ruby

View File

@@ -2,7 +2,7 @@ require 'rubygems'
require 'bundler/setup'
require 'xcoder'
require 'restkit/rake'
require 'ruby-debug'
require 'debugger'
RestKit::Rake::ServerTask.new do |t|
t.port = 4567
@@ -23,9 +23,9 @@ namespace :test do
namespace :logic do
desc "Run the logic tests for iOS"
task :ios => :kill_simulator do
config = Xcode.project(:RestKit).target(:RestKitTests).config(:Debug)
config = Xcode.workspace(:RestKit).scheme(:RestKitTests)
builder = config.builder
build_dir = File.dirname(config.target.project.path) + '/Build'
build_dir = File.dirname(config.parent.workspace_root) + '/Build'
builder.symroot = build_dir + '/Products'
builder.objroot = build_dir
builder.test(:sdk => 'iphonesimulator')
@@ -33,9 +33,9 @@ namespace :test do
desc "Run the logic tests for OS X"
task :osx do
config = Xcode.project(:RestKit).target(:RestKitFrameworkTests).config(:Debug)
config = Xcode.workspace(:RestKit).scheme(:RestKitFrameworkTests)
builder = config.builder
build_dir = File.dirname(config.target.project.path) + '/Build'
build_dir = File.dirname(config.parent.workspace_root) + '/Build'
builder.symroot = build_dir + '/Products'
builder.objroot = build_dir
builder.test(:sdk => 'macosx')
@@ -45,31 +45,12 @@ namespace :test do
desc "Run the unit tests for iOS and OS X"
task :logic => ['logic:ios', 'logic:osx']
namespace :application do
desc "Run the application tests for iOS"
task :ios => :kill_simulator do
config = Xcode.project(:RKApplicationTests).target('Application Tests').config(:Debug)
builder = config.builder
build_dir = File.dirname(config.target.project.path) + '/Build'
builder.symroot = build_dir + '/Products'
builder.objroot = build_dir
builder.test(:sdk => 'iphonesimulator')
end
end
desc "Run the application tests for iOS"
task :application => 'application:ios'
desc "Run all tests for iOS and OS X"
task :all do
Rake.application.invoke_task("test:logic")
unit_status = $?.exitstatus
puts "\033[0;33m!! Warning: RestKit application tests are disabled!!"
# Rake.application.invoke_task("test:application")
integration_status = $?.exitstatus
puts "\033[0;31m!! Unit Tests failed with exit status of #{unit_status}" if unit_status != 0
puts "\033[0;31m!! Integration Tests failed with exit status of #{integration_status}" if integration_status != 0
puts "\033[0;32m** All Tests executed successfully" if unit_status == 0 && integration_status == 0
puts "\033[0;32m** All Tests executed successfully" if unit_status == 0 #&& integration_status == 0
end
end
@@ -100,10 +81,9 @@ end
desc "Build RestKit for iOS and Mac OS X"
task :build do
run("xcodebuild -workspace RestKit.xcodeproj/project.xcworkspace -scheme RestKit -sdk iphonesimulator5.0 clean build")
run("xcodebuild -workspace RestKit.xcodeproj/project.xcworkspace -scheme RestKit -sdk iphoneos clean build")
run("xcodebuild -workspace RestKit.xcodeproj/project.xcworkspace -scheme RestKit -sdk macosx10.6 clean build")
run("xcodebuild -workspace Examples/RKCatalog/RKCatalog.xcodeproj/project.xcworkspace -scheme RKCatalog -sdk iphoneos clean build")
run("xcodebuild -workspace RestKit.xcworkspace -scheme RestKit -sdk iphonesimulator5.0 clean build")
run("xcodebuild -workspace RestKit.xcworkspace -scheme RestKit -sdk iphoneos clean build")
run("xcodebuild -workspace RestKit.xcworkspace -scheme RestKit -sdk macosx10.6 clean build")
end
desc "Generate documentation via appledoc"
@@ -175,7 +155,7 @@ end
namespace :build do
desc "Build all Example projects to ensure they are building properly"
task :examples do
ios_sdks = %w{iphoneos iphonesimulator5.0}
ios_sdks = %w{iphoneos iphonesimulator5.0 iphonesimulator6.0}
osx_sdks = %w{macosx}
osx_projects = %w{RKMacOSX}
@@ -199,25 +179,3 @@ desc "Validate a branch is ready for merging by checking for common issues"
task :validate => [:build, 'docs:check', 'uispec:all'] do
puts "Project state validated successfully. Proceed with merge."
end
namespace :payload do
task :generate do
require 'json'
require 'faker'
ids = (1..25).to_a
child_ids = (50..100).to_a
child_counts = (10..25).to_a
hash = ids.inject({'parents' => []}) do |hash, parent_id|
child_count = child_counts.sample
children = (0..child_count).collect do
{'name' => Faker::Name.name, 'childID' => child_ids.sample}
end
parent = {'parentID' => parent_id, 'name' => Faker::Name.name, 'children' => children}
hash['parents'] << parent
hash
end
File.open('payload.json', 'w+') { |f| f << hash.to_json }
puts "Generated payload at: payload.json"
end
end

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0450"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "25160E77145651060060A5C5"
BuildableName = "RestKitFrameworkTests.octest"
BlueprintName = "RestKitFrameworkTests"
ReferencedContainer = "container:RestKit.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "25160E77145651060060A5C5"
BuildableName = "RestKitFrameworkTests.octest"
BlueprintName = "RestKitFrameworkTests"
ReferencedContainer = "container:RestKit.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0450"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "25160D2514564E820060A5C5"
BuildableName = "RestKitTests.octest"
BlueprintName = "RestKitTests"
ReferencedContainer = "container:RestKit.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "25160D2514564E820060A5C5"
BuildableName = "RestKitTests.octest"
BlueprintName = "RestKitTests"
ReferencedContainer = "container:RestKit.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>