xcoder 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/Rakefile +2 -0
  2. data/lib/xcode/builder.rb +32 -19
  3. data/lib/xcode/shell.rb +3 -1
  4. data/lib/xcode/test/parsers/ocunit_parser.rb +94 -0
  5. data/lib/xcode/test/report.rb +121 -0
  6. data/lib/xcode/test/report/suite_result.rb +67 -0
  7. data/lib/xcode/test/report/test_result.rb +49 -0
  8. data/lib/xcode/version.rb +1 -1
  9. data/lib/xcode/workspace.rb +6 -3
  10. data/spec/TestProject/{TestProjectTests/TestProjectTests-Info.plist → ApplicationTests/ApplicationTests-Info.plist} +0 -0
  11. data/spec/TestProject/ApplicationTests/ApplicationTests-Prefix.pch +8 -0
  12. data/spec/TestProject/ApplicationTests/ApplicationTests.h +13 -0
  13. data/spec/TestProject/ApplicationTests/ApplicationTests.m +32 -0
  14. data/spec/TestProject/{TestProjectTests → ApplicationTests}/en.lproj/InfoPlist.strings +0 -0
  15. data/spec/TestProject/{TestProjectTests → LogicTests}/AnotherTest.h +0 -0
  16. data/spec/TestProject/{TestProjectTests → LogicTests}/AnotherTest.m +0 -0
  17. data/spec/TestProject/LogicTests/TestProjectTests-Info.plist +22 -0
  18. data/spec/TestProject/{TestProjectTests → LogicTests}/TestProjectTests.h +0 -0
  19. data/spec/TestProject/{TestProjectTests → LogicTests}/TestProjectTests.m +0 -0
  20. data/spec/TestProject/LogicTests/en.lproj/InfoPlist.strings +2 -0
  21. data/spec/TestProject/TestProject.xcodeproj/project.pbxproj +1329 -556
  22. data/spec/TestProject/TestProject.xcodeproj/xcshareddata/xcschemes/TestProject.xcscheme +13 -2
  23. data/spec/TestWorkspace2.xcworkspace/contents.xcworkspacedata +7 -0
  24. data/spec/TestWorkspace2.xcworkspace/xcuserdata/ray.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  25. data/spec/build_phase_spec.rb +2 -2
  26. data/spec/builder_spec.rb +51 -10
  27. data/spec/integration/builder_spec.rb +60 -4
  28. data/spec/ocunit_parser_spec.rb +164 -0
  29. data/spec/project_spec.rb +1 -1
  30. data/spec/workspace_spec.rb +8 -3
  31. metadata +44 -29
  32. data/lib/xcode/test/ocunit_report_parser.rb +0 -174
  33. data/lib/xcode/test/suite_result.rb +0 -39
  34. data/lib/xcode/test/test_result.rb +0 -43
  35. data/spec/test_report_spec.rb +0 -147
@@ -1,147 +0,0 @@
1
- require 'rspec'
2
- require 'xcoder'
3
-
4
- describe Xcode::Test::OCUnitReportParser do
5
-
6
- def example_report
7
- t = Xcode::Test::OCUnitReportParser.new
8
- yield(t) if block_given?
9
-
10
- t << "Run test suite AnExampleTestSuite"
11
- t << "Test Suite 'AnExampleTestSuite' started at 2012-02-10 00:37:04 +0000"
12
-
13
- t << "Run test case anExampleTest1"
14
- t << "Test Case '-[AnExampleTestSuite anExampleTest1]' started."
15
- t << "Test Case '-[AnExampleTestSuite anExampleTest1]' passed (0.003 seconds)."
16
-
17
- t << "Run test case anExampleTest2"
18
- t << "Test Case '-[AnExampleTestSuite anExampleTest2]' started."
19
- t << "Test Case '-[AnExampleTestSuite anExampleTest2]' passed (0.003 seconds)."
20
-
21
- t << "Test Suite 'AnExampleTestSuite' finished at 2012-02-10 00:37:04 +0000."
22
- t << "Executed 1 test, with 0 failures (0 unexpected) in 0.000 (0.000) seconds"
23
-
24
- t
25
- end
26
-
27
- def example_failing_report
28
- t = Xcode::Test::OCUnitReportParser.new
29
- t << "Run test suite AnExampleTestSuite"
30
- t << "Test Suite 'AnExampleTestSuite' started at 2012-02-10 00:37:04 +0000"
31
- t << "Test Case '-[AnExampleTestSuite aFailingTest]' started."
32
- yield(t) if block_given?
33
- t << "Test Case '-[AnExampleTestSuite aFailingTest]' failed (2 seconds)."
34
- t << "Test Suite 'AnExampleTestSuite' finished at 2012-02-10 00:37:04 +0000."
35
- t << "Executed 1 test, with 0 failures (0 unexpected) in 0.000 (0.000) seconds"
36
- t
37
- end
38
-
39
- it "should capture output for a test case" do
40
- t = example_failing_report do |parser|
41
- parser << '2012-02-17 15:03:06.521 otest[24979:7803] line1'
42
- parser << '2012-02-17 15:03:06.521 otest[24979:7803] line2'
43
- parser << '2012-02-17 15:03:06.521 otest[24979:7803] line3'
44
- parser << '2012-02-17 15:03:06.521 otest[24979:7803] line4'
45
- parser << '/Some/Path/To/Test.m:1234: error: -[AnExampleTestSuite aFailingTest] : This is an error message'
46
- end
47
-
48
- failure = t.reports.first.tests[0]
49
- failure.passed?.should==false
50
- failure.errors.count.should==1
51
- failure.errors[0][:data].count.should==4
52
- failure.errors[0][:data][0].should=~/line1/
53
- failure.errors[0][:data][1].should=~/line2/
54
- failure.errors[0][:data][2].should=~/line3/
55
- failure.errors[0][:data][3].should=~/line4/
56
- end
57
-
58
- it "should capture errors reported during a test" do
59
- t = example_failing_report do |parser|
60
- parser << '/Some/Path/To/Test.m:1234: error: -[AnExampleTestSuite aFailingTest] : This is an error message'
61
- end
62
-
63
- failure = t.reports.first.tests[0]
64
- failure.passed?.should==false
65
- failure.errors.count.should==1
66
- failure.errors[0][:message].should=='This is an error message'
67
- failure.errors[0][:location].should=='/Some/Path/To/Test.m:1234'
68
- end
69
-
70
- it "should create a test case" do
71
- t = example_report
72
- t.reports.count.should==1
73
- t.reports.first.name.should=="AnExampleTestSuite"
74
- t.reports.first.start_time.should==Time.parse("2012-02-10 00:37:04 +0000")
75
- t.reports.first.end_time.should==Time.parse("2012-02-10 00:37:04 +0000")
76
- end
77
-
78
- it "should detect a passing report" do
79
- t = example_report
80
- t.failed?.should==false
81
- end
82
-
83
- it "should detect a failing report" do
84
- t = example_failing_report
85
- t.failed?.should==true
86
- end
87
-
88
- it "should record a failure" do
89
- t = example_failing_report
90
- t.reports.first.total_failed_tests.should==1
91
- end
92
-
93
- it "should create a test case with some tests" do
94
- t = example_report
95
-
96
- t.reports.count.should==1
97
- t.reports.first.tests.count.should==2
98
- t.reports.first.tests[0].name.should=='anExampleTest1'
99
- t.reports.first.tests[0].time.should==0.003
100
- t.reports.first.tests[0].passed?.should==true
101
-
102
- t.reports.first.tests[1].name.should=='anExampleTest2'
103
- t.reports.first.tests[1].time.should==0.003
104
- t.reports.first.tests[1].passed?.should==true
105
- end
106
-
107
- it "should capture failed build" do
108
- t = Xcode::Test::OCUnitReportParser.new
109
- t << "Run test suite AnExampleTestSuite"
110
- t << "Test Suite 'AnExampleTestSuite' started at 2012-02-10 00:37:04 +0000"
111
- t << "Run test case anExampleTest1"
112
- t << "Test Case '-[AnExampleTestSuite anExampleTest1]' started."
113
- t << "/Path/To/Project/Tests/YPKeywordSuggestHandlerTest.m:45: error: -[AnExampleTestSuite anExampleTest1] : 'An example test spec' [FAILED], mock received unexpected message -setSuspended: 1 "
114
- t << "/Developer/Tools/RunPlatformUnitTests.include: line 415: 32225 Bus error: 10 \"${THIN_TEST_RIG}\" \"${OTHER_TEST_FLAGS}\" \"${TEST_BUNDLE_PATH}\""
115
- t << "/Developer/Tools/RunPlatformUnitTests.include:451: error: Test rig '/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/usr/bin/otest' exited abnormally with code 138 (it may have crashed)."
116
-
117
- t.flush
118
- t.failed?.should==true
119
- t.finished?.should==true
120
- failure = t.reports.first.tests[0]
121
- failure.passed?.should==false
122
- failure.data.count.should==2
123
- failure.data[0].should=~/32225 Bus error: 10/
124
- failure.data[1].should=~/Test rig/
125
- end
126
-
127
- context "Junit output" do
128
-
129
- it "should write out reports in junit format" do
130
- report_dir = "#{File.dirname(__FILE__)}/test-reports"
131
- FileUtils.rm_rf report_dir
132
-
133
- t = example_report do |t|
134
- t.formatters = []
135
- t.add_formatter :junit, report_dir
136
- end
137
-
138
- files = Dir["#{report_dir}/*.xml"]
139
- files.count.should==1
140
- files.first.should=~/TEST-AnExampleTestSuite.xml$/
141
-
142
- # FIXME: parse the report
143
- end
144
-
145
- end
146
-
147
- end