cucumber_monitor 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,6 +11,10 @@ module CucumberMonitor
11
11
  "#{path}/features"
12
12
  end
13
13
 
14
+ def self.step_definitions_path
15
+ "#{features_path}/step_definitions"
16
+ end
17
+
14
18
  def self.cucumber_output_file
15
19
  "#{path}/tmp/cucumber.out"
16
20
  end
@@ -25,6 +29,12 @@ module CucumberMonitor
25
29
  search_and_include_features(dir_entries)
26
30
  end
27
31
 
32
+ def step_definitions_files
33
+ collection = []
34
+ dir_entries = Dir.entries(self.class.step_definitions_path)
35
+ search_and_include_step_definitions(dir_entries)
36
+ end
37
+
28
38
  def search_and_include_features(dir_entries, collection=[])
29
39
  dir_entries.each do |entrie|
30
40
  if entrie.include?('.feature')
@@ -34,6 +44,15 @@ module CucumberMonitor
34
44
  collection
35
45
  end
36
46
 
47
+ def search_and_include_step_definitions(dir_entries, collection=[])
48
+ dir_entries.each do |entrie|
49
+ if entrie.include?('_step.rb')
50
+ collection << entrie
51
+ end
52
+ end
53
+ collection
54
+ end
55
+
37
56
  def features
38
57
  collection = []
39
58
  files.each do |file|
@@ -42,6 +61,14 @@ module CucumberMonitor
42
61
  collection
43
62
  end
44
63
 
64
+ def step_definitions
65
+ collection = []
66
+ step_definitions_files.each do |file|
67
+ collection << CucumberMonitor::StepDefinitionFile.new(file)
68
+ end
69
+ collection
70
+ end
71
+
45
72
  def search(criteria)
46
73
  results = []
47
74
  features.each do |feature|
@@ -54,5 +81,16 @@ module CucumberMonitor
54
81
  results
55
82
  end
56
83
 
84
+ def search_match(criteria)
85
+ results = []
86
+ step_definitions.each do |step_definition|
87
+ step_definition.definitions.each do |definition|
88
+ matcher = Amatch::Sellers.new(criteria)
89
+ results << {definition: definition, score: matcher.match(definition.description)}
90
+ end
91
+ end
92
+ results.min {|a,b| a[:score] <=> b[:score]}[:definition] if results.any?
93
+ end
94
+
57
95
  end
58
96
  end
@@ -0,0 +1,45 @@
1
+ # encoding: UTF-8
2
+
3
+ module CucumberMonitor
4
+
5
+ class Definition
6
+
7
+ attr_accessor :description, :file
8
+
9
+ def initialize(description, file)
10
+ @description = description
11
+ @file = file
12
+ end
13
+
14
+ def raw_content
15
+ df = []
16
+ started = false
17
+ stopped = false
18
+ record = false
19
+ count = 0
20
+
21
+ file.lines.each_with_index do |line, i|
22
+
23
+ if line.include?(description)
24
+ started = true
25
+ end
26
+ if started && !stopped
27
+ df << line
28
+ stopped = true if line.strip.match(/^end$/)
29
+ count += 1
30
+ end
31
+ end
32
+ df
33
+ end
34
+
35
+ def content
36
+ raw_content.collect{|c| c.strip }
37
+ end
38
+
39
+ def core_content
40
+ content[1..-2].collect{|c| c.strip }
41
+ end
42
+
43
+ end
44
+
45
+ end
@@ -28,6 +28,7 @@ module CucumberMonitor
28
28
  prepared_json = json
29
29
  prepared_json.first['elements'].each do |element|
30
30
  element['steps'].each do |step|
31
+ puts step['match']['location']
31
32
  description = "#{step['keyword']}#{step['name']}"
32
33
  code_first_part = element['name'].blank? ? element['keyword'].parameterize : element['name'].parameterize
33
34
  code_second_part = description.parameterize
@@ -1,3 +1,5 @@
1
+ require 'amatch'
2
+
1
3
  module CucumberMonitor
2
4
 
3
5
  class Step
@@ -13,6 +15,10 @@ module CucumberMonitor
13
15
  @id = id
14
16
  end
15
17
 
18
+ def description_without_keyword
19
+ description.gsub(/^\w+\s/,'')
20
+ end
21
+
16
22
  def siblings_and_self
17
23
  parent.steps
18
24
  end
@@ -51,6 +57,10 @@ module CucumberMonitor
51
57
  !table?
52
58
  end
53
59
 
60
+ def definition
61
+ Base.new.search_match(description)
62
+ end
63
+
54
64
  def formatted
55
65
  output = ""
56
66
  if table_first_line?
@@ -0,0 +1,40 @@
1
+ # encoding: UTF-8
2
+
3
+ module CucumberMonitor
4
+
5
+ class StepDefinitionFile
6
+
7
+ attr_accessor :file
8
+
9
+ def self.keywords
10
+ [I18n.t("given"), I18n.t("when"), I18n.t("then"), I18n.t("and"), I18n.t("but")].collect{|c| c[2..-1]}
11
+ end
12
+
13
+ def initialize(file)
14
+ @file = file
15
+ end
16
+
17
+ def name
18
+ file[0..-9]
19
+ end
20
+
21
+ def lines
22
+ f = open(CucumberMonitor::Base.step_definitions_path + '/' + file)
23
+ file_lines = f.readlines
24
+ f.close
25
+ file_lines
26
+ end
27
+
28
+ def definitions
29
+ df = []
30
+ lines.each do |line|
31
+ if self.class.keywords.any?{|k| line.include?(k)}
32
+ df << Definition.new(line.strip,self)
33
+ end
34
+ end
35
+ df
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -1,6 +1,11 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ require 'amatch'
4
+
3
5
  class String
6
+
7
+ include Amatch
8
+
4
9
  def clean
5
10
  term = self.split(': ')[1]
6
11
  term.strip if term
@@ -1,3 +1,3 @@
1
1
  module CucumberMonitor
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -4,6 +4,8 @@ require "cucumber_monitor/engine"
4
4
 
5
5
  require 'cucumber_monitor/base'
6
6
  require 'cucumber_monitor/feature_file'
7
+ require 'cucumber_monitor/step_definition_file'
8
+ require 'cucumber_monitor/definition'
7
9
  require 'cucumber_monitor/scenario'
8
10
  require 'cucumber_monitor/context'
9
11
  require 'cucumber_monitor/step'
data/test/base_test.rb CHANGED
@@ -3,19 +3,20 @@ require 'test_helper'
3
3
  class BaseTest < ActiveSupport::TestCase
4
4
 
5
5
  test "should return all features" do
6
- assert_equal 2, @cucumber.features.size
6
+ assert_equal 3, @cucumber.features.size
7
7
 
8
- features = ['administration.feature','change_my_data.feature']
8
+ features = ['administration.feature','change_my_data.feature','google_search.feature']
9
9
  assert_equal features, @cucumber.features.map(&:file)
10
10
  end
11
11
 
12
12
  test "should find features by searching" do
13
- assert_equal 2, @cucumber.features.where(name: 'a').size
14
- features = ['administration.feature','change_my_data.feature']
13
+ assert_equal 3, @cucumber.features.where(name: 'a').size
14
+ features = ['administration.feature','change_my_data.feature','google_search.feature']
15
15
  assert_equal features, @cucumber.features.where(name: 'a').map(&:file)
16
16
 
17
17
  assert_equal 'administration.feature', @cucumber.features.where(name: 'admin').file
18
- assert_equal 'change_my_data.feature', @cucumber.features.where(name: 'change').file
18
+ assert_equal 'change_my_data.feature', @cucumber.features.where(name: 'change').file
19
+ assert_equal 'google_search.feature', @cucumber.features.where(name: 'search').file
19
20
  end
20
21
 
21
22
  test 'should find all steps that matches with a given term' do
@@ -28,7 +29,8 @@ class BaseTest < ActiveSupport::TestCase
28
29
  'Then I should see my personal information',
29
30
  'Then I should see "Personal data successfully changed"',
30
31
  'And I should see "Petter Summers"',
31
- 'I should see the following table:'
32
+ 'I should see the following table:',
33
+ 'Then I should see "The New York Times - Breaking News, World News & Multimedia"'
32
34
  ]
33
35
 
34
36
  assert_equal steps, @cucumber.search(term).map(&:description)
data/test/context_test.rb CHANGED
@@ -3,11 +3,11 @@ require 'test_helper'
3
3
  class ContextTest < ActiveSupport::TestCase
4
4
 
5
5
  test "context should return its steps" do
6
- assert_equal 1, @feature_two.contexts.first.steps.size
6
+ assert_equal 1, @feature_three.contexts.first.steps.size
7
7
 
8
8
  step_1 = 'Given my name is Peter and I have an account in the system'
9
9
 
10
- assert_equal step_1, @feature_two.contexts.first.steps[0].description
10
+ assert_equal step_1, @feature_three.contexts.first.steps[0].description
11
11
  end
12
12
 
13
13
  end
@@ -0,0 +1,6 @@
1
+ @mechanize
2
+ Feature: Searching on Google
3
+ Scenario: Search for New York Times
4
+ Given I am at the google page
5
+ When I search for "New York Times"
6
+ Then I should see "The New York Times - Breaking News, World News & Multimedia"
@@ -0,0 +1,11 @@
1
+ Given /^I am at the google page$/ do
2
+ visit "http://www.google.com"
3
+ end
4
+
5
+ When /^I search for "(.*?)"$/ do |term|
6
+ fill_in 'gbqfq', with: term
7
+ end
8
+
9
+ Then /^I should see "(.*?)"$/ do |string|
10
+ page.has_content?(string)
11
+ end
@@ -0,0 +1 @@
1
+ require 'capybara/mechanize/cucumber'
@@ -1,3 +1,48 @@
1
1
  Connecting to database specified by database.yml
2
2
  Connecting to database specified by database.yml
3
3
  Connecting to database specified by database.yml
4
+ Connecting to database specified by database.yml
5
+ Connecting to database specified by database.yml
6
+ Connecting to database specified by database.yml
7
+ Connecting to database specified by database.yml
8
+ Connecting to database specified by database.yml
9
+ Connecting to database specified by database.yml
10
+ Connecting to database specified by database.yml
11
+ Connecting to database specified by database.yml
12
+ Connecting to database specified by database.yml
13
+ Connecting to database specified by database.yml
14
+ Connecting to database specified by database.yml
15
+ Connecting to database specified by database.yml
16
+ Connecting to database specified by database.yml
17
+ Connecting to database specified by database.yml
18
+ Connecting to database specified by database.yml
19
+ Connecting to database specified by database.yml
20
+ Connecting to database specified by database.yml
21
+ Connecting to database specified by database.yml
22
+ Connecting to database specified by database.yml
23
+ Connecting to database specified by database.yml
24
+ Connecting to database specified by database.yml
25
+ Connecting to database specified by database.yml
26
+ Connecting to database specified by database.yml
27
+ Connecting to database specified by database.yml
28
+ Connecting to database specified by database.yml
29
+ Connecting to database specified by database.yml
30
+ Connecting to database specified by database.yml
31
+ Connecting to database specified by database.yml
32
+ Connecting to database specified by database.yml
33
+ Connecting to database specified by database.yml
34
+ Connecting to database specified by database.yml
35
+ Connecting to database specified by database.yml
36
+ Connecting to database specified by database.yml
37
+ Connecting to database specified by database.yml
38
+ Connecting to database specified by database.yml
39
+ Connecting to database specified by database.yml
40
+ Connecting to database specified by database.yml
41
+ Connecting to database specified by database.yml
42
+ Connecting to database specified by database.yml
43
+ Connecting to database specified by database.yml
44
+ Connecting to database specified by database.yml
45
+ Connecting to database specified by database.yml
46
+ Connecting to database specified by database.yml
47
+ Connecting to database specified by database.yml
48
+ Connecting to database specified by database.yml
@@ -1042,3 +1042,576 @@ Connecting to database specified by database.yml
1042
1042
   (0.0ms) rollback transaction
1043
1043
   (0.0ms) begin transaction
1044
1044
   (0.0ms) rollback transaction
1045
+ Connecting to database specified by database.yml
1046
+  (0.4ms) begin transaction
1047
+  (0.1ms) rollback transaction
1048
+  (0.0ms) begin transaction
1049
+  (0.0ms) rollback transaction
1050
+  (0.0ms) begin transaction
1051
+  (0.0ms) rollback transaction
1052
+  (0.0ms) begin transaction
1053
+  (0.0ms) rollback transaction
1054
+  (0.0ms) begin transaction
1055
+  (0.2ms) rollback transaction
1056
+  (0.0ms) begin transaction
1057
+  (0.1ms) rollback transaction
1058
+  (0.0ms) begin transaction
1059
+  (0.0ms) rollback transaction
1060
+  (0.0ms) begin transaction
1061
+  (0.0ms) rollback transaction
1062
+  (0.0ms) begin transaction
1063
+  (0.1ms) rollback transaction
1064
+  (0.0ms) begin transaction
1065
+  (0.0ms) rollback transaction
1066
+  (0.0ms) begin transaction
1067
+  (0.0ms) rollback transaction
1068
+  (0.0ms) begin transaction
1069
+  (0.0ms) rollback transaction
1070
+  (0.0ms) begin transaction
1071
+  (0.0ms) rollback transaction
1072
+  (0.0ms) begin transaction
1073
+  (0.1ms) rollback transaction
1074
+ Connecting to database specified by database.yml
1075
+ Connecting to database specified by database.yml
1076
+ Connecting to database specified by database.yml
1077
+  (0.4ms) begin transaction
1078
+  (0.1ms) rollback transaction
1079
+  (0.0ms) begin transaction
1080
+  (0.0ms) rollback transaction
1081
+ Connecting to database specified by database.yml
1082
+  (0.5ms) begin transaction
1083
+  (0.1ms) rollback transaction
1084
+ Connecting to database specified by database.yml
1085
+  (0.4ms) begin transaction
1086
+
1087
+
1088
+ Started GET "/" for 127.0.0.1 at 2012-09-28 10:11:42 -0300
1089
+  (0.1ms) rollback transaction
1090
+ Connecting to database specified by database.yml
1091
+  (0.4ms) begin transaction
1092
+
1093
+
1094
+ Started GET "/" for 127.0.0.1 at 2012-09-28 10:12:04 -0300
1095
+  (0.1ms) rollback transaction
1096
+ Connecting to database specified by database.yml
1097
+ Connecting to database specified by database.yml
1098
+  (0.4ms) begin transaction
1099
+  (0.1ms) rollback transaction
1100
+ Connecting to database specified by database.yml
1101
+  (0.4ms) begin transaction
1102
+  (0.1ms) rollback transaction
1103
+ Connecting to database specified by database.yml
1104
+  (0.4ms) begin transaction
1105
+  (0.1ms) rollback transaction
1106
+ Connecting to database specified by database.yml
1107
+  (0.4ms) begin transaction
1108
+  (0.1ms) rollback transaction
1109
+ Connecting to database specified by database.yml
1110
+  (0.4ms) begin transaction
1111
+  (0.1ms) rollback transaction
1112
+ Connecting to database specified by database.yml
1113
+  (0.4ms) begin transaction
1114
+  (0.1ms) rollback transaction
1115
+  (0.0ms) begin transaction
1116
+  (0.0ms) rollback transaction
1117
+  (0.0ms) begin transaction
1118
+  (0.0ms) rollback transaction
1119
+  (0.0ms) begin transaction
1120
+  (0.0ms) rollback transaction
1121
+  (0.0ms) begin transaction
1122
+  (0.1ms) rollback transaction
1123
+  (0.1ms) begin transaction
1124
+  (0.0ms) rollback transaction
1125
+  (0.0ms) begin transaction
1126
+  (0.0ms) rollback transaction
1127
+  (0.0ms) begin transaction
1128
+  (0.0ms) rollback transaction
1129
+  (0.1ms) begin transaction
1130
+  (0.1ms) rollback transaction
1131
+  (0.0ms) begin transaction
1132
+  (0.0ms) rollback transaction
1133
+  (0.0ms) begin transaction
1134
+  (0.0ms) rollback transaction
1135
+  (0.0ms) begin transaction
1136
+  (0.0ms) rollback transaction
1137
+  (0.0ms) begin transaction
1138
+  (0.1ms) rollback transaction
1139
+  (0.0ms) begin transaction
1140
+  (0.1ms) rollback transaction
1141
+  (0.0ms) begin transaction
1142
+  (0.0ms) rollback transaction
1143
+ Connecting to database specified by database.yml
1144
+  (0.4ms) begin transaction
1145
+  (0.1ms) rollback transaction
1146
+  (0.0ms) begin transaction
1147
+  (0.0ms) rollback transaction
1148
+  (0.0ms) begin transaction
1149
+  (0.0ms) rollback transaction
1150
+  (0.0ms) begin transaction
1151
+  (0.0ms) rollback transaction
1152
+  (0.0ms) begin transaction
1153
+  (0.1ms) rollback transaction
1154
+  (0.0ms) begin transaction
1155
+  (0.1ms) rollback transaction
1156
+  (0.0ms) begin transaction
1157
+  (0.0ms) rollback transaction
1158
+  (0.0ms) begin transaction
1159
+  (0.0ms) rollback transaction
1160
+  (0.0ms) begin transaction
1161
+  (0.1ms) rollback transaction
1162
+  (0.0ms) begin transaction
1163
+  (0.0ms) rollback transaction
1164
+  (0.0ms) begin transaction
1165
+  (0.0ms) rollback transaction
1166
+  (0.0ms) begin transaction
1167
+  (0.0ms) rollback transaction
1168
+  (0.0ms) begin transaction
1169
+  (0.0ms) rollback transaction
1170
+  (0.0ms) begin transaction
1171
+  (0.0ms) rollback transaction
1172
+  (0.0ms) begin transaction
1173
+  (0.0ms) rollback transaction
1174
+ Connecting to database specified by database.yml
1175
+  (0.4ms) begin transaction
1176
+  (0.1ms) rollback transaction
1177
+  (0.0ms) begin transaction
1178
+  (0.0ms) rollback transaction
1179
+  (0.0ms) begin transaction
1180
+  (0.0ms) rollback transaction
1181
+  (0.0ms) begin transaction
1182
+  (0.0ms) rollback transaction
1183
+  (0.0ms) begin transaction
1184
+  (0.1ms) rollback transaction
1185
+  (0.0ms) begin transaction
1186
+  (0.0ms) rollback transaction
1187
+  (0.0ms) begin transaction
1188
+  (0.0ms) rollback transaction
1189
+  (0.0ms) begin transaction
1190
+  (0.1ms) rollback transaction
1191
+  (0.0ms) begin transaction
1192
+  (0.0ms) rollback transaction
1193
+  (0.0ms) begin transaction
1194
+  (0.0ms) rollback transaction
1195
+  (0.0ms) begin transaction
1196
+  (0.0ms) rollback transaction
1197
+  (0.0ms) begin transaction
1198
+  (0.0ms) rollback transaction
1199
+  (0.0ms) begin transaction
1200
+  (0.1ms) rollback transaction
1201
+  (0.0ms) begin transaction
1202
+  (0.0ms) rollback transaction
1203
+  (0.0ms) begin transaction
1204
+  (0.0ms) rollback transaction
1205
+ Connecting to database specified by database.yml
1206
+  (0.4ms) begin transaction
1207
+  (0.1ms) rollback transaction
1208
+  (0.0ms) begin transaction
1209
+  (0.1ms) rollback transaction
1210
+  (0.0ms) begin transaction
1211
+  (0.0ms) rollback transaction
1212
+  (0.0ms) begin transaction
1213
+  (0.1ms) rollback transaction
1214
+  (0.0ms) begin transaction
1215
+  (0.1ms) rollback transaction
1216
+  (0.0ms) begin transaction
1217
+  (0.0ms) rollback transaction
1218
+  (0.0ms) begin transaction
1219
+  (0.0ms) rollback transaction
1220
+  (0.0ms) begin transaction
1221
+  (0.0ms) rollback transaction
1222
+  (0.0ms) begin transaction
1223
+  (0.0ms) rollback transaction
1224
+  (0.0ms) begin transaction
1225
+  (0.0ms) rollback transaction
1226
+  (0.0ms) begin transaction
1227
+  (0.1ms) rollback transaction
1228
+  (0.0ms) begin transaction
1229
+  (0.0ms) rollback transaction
1230
+  (0.0ms) begin transaction
1231
+  (0.1ms) rollback transaction
1232
+  (0.0ms) begin transaction
1233
+  (0.0ms) rollback transaction
1234
+  (0.0ms) begin transaction
1235
+  (0.0ms) rollback transaction
1236
+ Connecting to database specified by database.yml
1237
+  (0.4ms) begin transaction
1238
+  (0.1ms) rollback transaction
1239
+  (0.0ms) begin transaction
1240
+  (0.0ms) rollback transaction
1241
+  (0.0ms) begin transaction
1242
+  (0.0ms) rollback transaction
1243
+  (0.0ms) begin transaction
1244
+  (0.0ms) rollback transaction
1245
+  (0.1ms) begin transaction
1246
+  (0.1ms) rollback transaction
1247
+  (0.1ms) begin transaction
1248
+  (0.0ms) rollback transaction
1249
+  (0.0ms) begin transaction
1250
+  (0.0ms) rollback transaction
1251
+  (0.0ms) begin transaction
1252
+  (0.0ms) rollback transaction
1253
+  (0.0ms) begin transaction
1254
+  (0.0ms) rollback transaction
1255
+  (0.0ms) begin transaction
1256
+  (0.0ms) rollback transaction
1257
+  (0.0ms) begin transaction
1258
+  (0.0ms) rollback transaction
1259
+  (0.0ms) begin transaction
1260
+  (0.0ms) rollback transaction
1261
+  (0.0ms) begin transaction
1262
+  (0.0ms) rollback transaction
1263
+  (0.0ms) begin transaction
1264
+  (0.0ms) rollback transaction
1265
+  (0.0ms) begin transaction
1266
+  (0.0ms) rollback transaction
1267
+ Connecting to database specified by database.yml
1268
+  (0.4ms) begin transaction
1269
+  (0.1ms) rollback transaction
1270
+  (0.0ms) begin transaction
1271
+  (0.0ms) rollback transaction
1272
+  (0.0ms) begin transaction
1273
+  (0.0ms) rollback transaction
1274
+  (0.0ms) begin transaction
1275
+  (0.1ms) rollback transaction
1276
+  (0.0ms) begin transaction
1277
+  (0.1ms) rollback transaction
1278
+  (0.0ms) begin transaction
1279
+  (0.0ms) rollback transaction
1280
+  (0.0ms) begin transaction
1281
+  (0.0ms) rollback transaction
1282
+  (0.0ms) begin transaction
1283
+  (0.1ms) rollback transaction
1284
+  (0.0ms) begin transaction
1285
+  (0.1ms) rollback transaction
1286
+  (0.0ms) begin transaction
1287
+  (0.0ms) rollback transaction
1288
+  (0.1ms) begin transaction
1289
+  (0.0ms) rollback transaction
1290
+  (0.0ms) begin transaction
1291
+  (0.0ms) rollback transaction
1292
+  (0.0ms) begin transaction
1293
+  (0.0ms) rollback transaction
1294
+  (0.0ms) begin transaction
1295
+  (0.0ms) rollback transaction
1296
+  (0.0ms) begin transaction
1297
+  (0.0ms) rollback transaction
1298
+ Connecting to database specified by database.yml
1299
+  (0.4ms) begin transaction
1300
+  (0.1ms) rollback transaction
1301
+  (0.0ms) begin transaction
1302
+  (0.0ms) rollback transaction
1303
+  (0.0ms) begin transaction
1304
+  (0.0ms) rollback transaction
1305
+  (0.0ms) begin transaction
1306
+  (0.1ms) rollback transaction
1307
+  (0.0ms) begin transaction
1308
+  (0.1ms) rollback transaction
1309
+  (0.0ms) begin transaction
1310
+  (0.0ms) rollback transaction
1311
+  (0.0ms) begin transaction
1312
+  (0.1ms) rollback transaction
1313
+  (0.0ms) begin transaction
1314
+  (0.0ms) rollback transaction
1315
+  (0.0ms) begin transaction
1316
+  (0.0ms) rollback transaction
1317
+  (0.0ms) begin transaction
1318
+  (0.0ms) rollback transaction
1319
+  (0.1ms) begin transaction
1320
+  (0.0ms) rollback transaction
1321
+  (0.0ms) begin transaction
1322
+  (0.0ms) rollback transaction
1323
+  (0.0ms) begin transaction
1324
+  (0.0ms) rollback transaction
1325
+  (0.0ms) begin transaction
1326
+  (0.0ms) rollback transaction
1327
+  (0.0ms) begin transaction
1328
+  (0.0ms) rollback transaction
1329
+ Connecting to database specified by database.yml
1330
+  (0.4ms) begin transaction
1331
+  (0.1ms) rollback transaction
1332
+  (0.0ms) begin transaction
1333
+  (0.0ms) rollback transaction
1334
+  (0.0ms) begin transaction
1335
+  (0.0ms) rollback transaction
1336
+  (0.0ms) begin transaction
1337
+  (0.1ms) rollback transaction
1338
+  (0.0ms) begin transaction
1339
+  (0.1ms) rollback transaction
1340
+  (0.0ms) begin transaction
1341
+  (0.0ms) rollback transaction
1342
+  (0.0ms) begin transaction
1343
+  (0.0ms) rollback transaction
1344
+  (0.0ms) begin transaction
1345
+  (0.0ms) rollback transaction
1346
+  (0.1ms) begin transaction
1347
+  (0.1ms) rollback transaction
1348
+  (0.0ms) begin transaction
1349
+  (0.1ms) rollback transaction
1350
+  (0.1ms) begin transaction
1351
+  (0.0ms) rollback transaction
1352
+  (0.0ms) begin transaction
1353
+  (0.0ms) rollback transaction
1354
+  (0.0ms) begin transaction
1355
+  (0.0ms) rollback transaction
1356
+  (0.0ms) begin transaction
1357
+  (0.0ms) rollback transaction
1358
+  (0.0ms) begin transaction
1359
+  (0.0ms) rollback transaction
1360
+ Connecting to database specified by database.yml
1361
+  (0.4ms) begin transaction
1362
+
1363
+
1364
+ Started GET "/" for 127.0.0.1 at 2012-09-28 10:49:41 -0300
1365
+  (0.1ms) rollback transaction
1366
+ Connecting to database specified by database.yml
1367
+  (0.4ms) begin transaction
1368
+  (0.1ms) rollback transaction
1369
+  (0.0ms) begin transaction
1370
+  (0.0ms) rollback transaction
1371
+  (0.0ms) begin transaction
1372
+  (0.0ms) rollback transaction
1373
+  (0.0ms) begin transaction
1374
+  (0.1ms) rollback transaction
1375
+  (0.0ms) begin transaction
1376
+  (0.1ms) rollback transaction
1377
+  (0.1ms) begin transaction
1378
+  (0.1ms) rollback transaction
1379
+  (0.0ms) begin transaction
1380
+  (0.0ms) rollback transaction
1381
+  (0.0ms) begin transaction
1382
+  (0.0ms) rollback transaction
1383
+  (0.1ms) begin transaction
1384
+  (0.1ms) rollback transaction
1385
+  (0.0ms) begin transaction
1386
+  (0.0ms) rollback transaction
1387
+  (0.0ms) begin transaction
1388
+  (0.0ms) rollback transaction
1389
+  (0.0ms) begin transaction
1390
+  (0.0ms) rollback transaction
1391
+  (0.1ms) begin transaction
1392
+  (0.0ms) rollback transaction
1393
+  (0.0ms) begin transaction
1394
+  (0.0ms) rollback transaction
1395
+  (0.0ms) begin transaction
1396
+  (0.0ms) rollback transaction
1397
+ Connecting to database specified by database.yml
1398
+  (0.4ms) begin transaction
1399
+
1400
+
1401
+ Started GET "/" for 127.0.0.1 at 2012-09-28 10:53:02 -0300
1402
+  (0.1ms) rollback transaction
1403
+ Connecting to database specified by database.yml
1404
+  (0.4ms) begin transaction
1405
+  (0.1ms) rollback transaction
1406
+  (0.0ms) begin transaction
1407
+  (0.0ms) rollback transaction
1408
+  (0.0ms) begin transaction
1409
+  (0.0ms) rollback transaction
1410
+  (0.0ms) begin transaction
1411
+  (0.1ms) rollback transaction
1412
+  (0.0ms) begin transaction
1413
+  (0.1ms) rollback transaction
1414
+  (0.0ms) begin transaction
1415
+  (0.0ms) rollback transaction
1416
+  (0.0ms) begin transaction
1417
+  (0.0ms) rollback transaction
1418
+  (0.0ms) begin transaction
1419
+  (0.0ms) rollback transaction
1420
+  (0.0ms) begin transaction
1421
+  (0.0ms) rollback transaction
1422
+  (0.0ms) begin transaction
1423
+  (0.0ms) rollback transaction
1424
+  (0.0ms) begin transaction
1425
+  (0.0ms) rollback transaction
1426
+  (0.1ms) begin transaction
1427
+  (0.0ms) rollback transaction
1428
+  (0.0ms) begin transaction
1429
+  (0.0ms) rollback transaction
1430
+  (0.0ms) begin transaction
1431
+  (0.0ms) rollback transaction
1432
+  (0.0ms) begin transaction
1433
+  (0.0ms) rollback transaction
1434
+ Connecting to database specified by database.yml
1435
+  (0.4ms) begin transaction
1436
+  (0.1ms) rollback transaction
1437
+ Connecting to database specified by database.yml
1438
+  (0.4ms) begin transaction
1439
+  (0.1ms) rollback transaction
1440
+  (0.0ms) begin transaction
1441
+  (0.0ms) rollback transaction
1442
+  (0.0ms) begin transaction
1443
+  (0.0ms) rollback transaction
1444
+  (0.0ms) begin transaction
1445
+  (0.1ms) rollback transaction
1446
+  (0.0ms) begin transaction
1447
+  (0.1ms) rollback transaction
1448
+  (0.0ms) begin transaction
1449
+  (0.0ms) rollback transaction
1450
+  (0.0ms) begin transaction
1451
+  (0.0ms) rollback transaction
1452
+  (0.0ms) begin transaction
1453
+  (0.0ms) rollback transaction
1454
+  (0.0ms) begin transaction
1455
+  (0.0ms) rollback transaction
1456
+  (0.0ms) begin transaction
1457
+  (0.0ms) rollback transaction
1458
+  (0.1ms) begin transaction
1459
+  (0.1ms) rollback transaction
1460
+  (0.0ms) begin transaction
1461
+  (0.0ms) rollback transaction
1462
+  (0.0ms) begin transaction
1463
+  (0.0ms) rollback transaction
1464
+  (0.0ms) begin transaction
1465
+  (0.0ms) rollback transaction
1466
+  (0.0ms) begin transaction
1467
+  (0.0ms) rollback transaction
1468
+ Connecting to database specified by database.yml
1469
+  (0.5ms) begin transaction
1470
+  (0.1ms) rollback transaction
1471
+ Connecting to database specified by database.yml
1472
+  (0.5ms) begin transaction
1473
+  (0.1ms) rollback transaction
1474
+ Connecting to database specified by database.yml
1475
+  (0.4ms) begin transaction
1476
+  (0.1ms) rollback transaction
1477
+ Connecting to database specified by database.yml
1478
+  (0.4ms) begin transaction
1479
+  (0.1ms) rollback transaction
1480
+  (0.0ms) begin transaction
1481
+  (0.0ms) rollback transaction
1482
+  (0.0ms) begin transaction
1483
+  (0.0ms) rollback transaction
1484
+  (0.0ms) begin transaction
1485
+  (0.0ms) rollback transaction
1486
+  (0.0ms) begin transaction
1487
+  (0.0ms) rollback transaction
1488
+ Connecting to database specified by database.yml
1489
+  (0.4ms) begin transaction
1490
+  (0.1ms) rollback transaction
1491
+ Connecting to database specified by database.yml
1492
+  (0.4ms) begin transaction
1493
+  (0.1ms) rollback transaction
1494
+ Connecting to database specified by database.yml
1495
+  (0.4ms) begin transaction
1496
+  (0.1ms) rollback transaction
1497
+  (0.0ms) begin transaction
1498
+  (0.0ms) rollback transaction
1499
+  (0.0ms) begin transaction
1500
+  (0.0ms) rollback transaction
1501
+  (0.0ms) begin transaction
1502
+  (0.0ms) rollback transaction
1503
+  (0.0ms) begin transaction
1504
+  (0.1ms) rollback transaction
1505
+  (0.0ms) begin transaction
1506
+  (0.0ms) rollback transaction
1507
+  (0.0ms) begin transaction
1508
+  (0.0ms) rollback transaction
1509
+  (0.0ms) begin transaction
1510
+  (0.1ms) rollback transaction
1511
+  (0.0ms) begin transaction
1512
+  (0.0ms) rollback transaction
1513
+  (0.0ms) begin transaction
1514
+  (0.0ms) rollback transaction
1515
+  (0.0ms) begin transaction
1516
+  (0.1ms) rollback transaction
1517
+  (0.0ms) begin transaction
1518
+  (0.0ms) rollback transaction
1519
+  (0.0ms) begin transaction
1520
+  (0.0ms) rollback transaction
1521
+  (0.0ms) begin transaction
1522
+  (0.0ms) rollback transaction
1523
+  (0.0ms) begin transaction
1524
+  (0.0ms) rollback transaction
1525
+ Connecting to database specified by database.yml
1526
+  (0.4ms) begin transaction
1527
+  (0.1ms) rollback transaction
1528
+  (0.0ms) begin transaction
1529
+  (0.0ms) rollback transaction
1530
+  (0.0ms) begin transaction
1531
+  (0.0ms) rollback transaction
1532
+  (0.0ms) begin transaction
1533
+  (0.0ms) rollback transaction
1534
+  (0.0ms) begin transaction
1535
+  (0.1ms) rollback transaction
1536
+  (0.0ms) begin transaction
1537
+  (0.0ms) rollback transaction
1538
+  (0.0ms) begin transaction
1539
+  (0.0ms) rollback transaction
1540
+  (0.0ms) begin transaction
1541
+  (0.0ms) rollback transaction
1542
+  (0.0ms) begin transaction
1543
+  (0.0ms) rollback transaction
1544
+  (0.1ms) begin transaction
1545
+  (0.0ms) rollback transaction
1546
+  (0.0ms) begin transaction
1547
+  (0.0ms) rollback transaction
1548
+  (0.0ms) begin transaction
1549
+  (0.0ms) rollback transaction
1550
+  (0.0ms) begin transaction
1551
+  (0.0ms) rollback transaction
1552
+  (0.0ms) begin transaction
1553
+  (0.0ms) rollback transaction
1554
+  (0.0ms) begin transaction
1555
+  (0.0ms) rollback transaction
1556
+ Connecting to database specified by database.yml
1557
+  (0.4ms) begin transaction
1558
+  (0.1ms) rollback transaction
1559
+  (0.0ms) begin transaction
1560
+  (0.0ms) rollback transaction
1561
+  (0.0ms) begin transaction
1562
+  (0.0ms) rollback transaction
1563
+  (0.0ms) begin transaction
1564
+  (0.1ms) rollback transaction
1565
+  (0.0ms) begin transaction
1566
+  (0.1ms) rollback transaction
1567
+  (0.0ms) begin transaction
1568
+  (0.0ms) rollback transaction
1569
+  (0.0ms) begin transaction
1570
+  (0.1ms) rollback transaction
1571
+  (0.0ms) begin transaction
1572
+  (0.0ms) rollback transaction
1573
+  (0.0ms) begin transaction
1574
+  (0.0ms) rollback transaction
1575
+  (0.0ms) begin transaction
1576
+  (0.0ms) rollback transaction
1577
+  (0.0ms) begin transaction
1578
+  (0.1ms) rollback transaction
1579
+  (0.0ms) begin transaction
1580
+  (0.0ms) rollback transaction
1581
+  (0.0ms) begin transaction
1582
+  (0.0ms) rollback transaction
1583
+  (0.0ms) begin transaction
1584
+  (0.0ms) rollback transaction
1585
+  (0.0ms) begin transaction
1586
+  (0.0ms) rollback transaction
1587
+ Connecting to database specified by database.yml
1588
+  (0.4ms) begin transaction
1589
+  (0.1ms) rollback transaction
1590
+  (0.0ms) begin transaction
1591
+  (0.0ms) rollback transaction
1592
+  (0.0ms) begin transaction
1593
+  (0.0ms) rollback transaction
1594
+  (0.0ms) begin transaction
1595
+  (0.0ms) rollback transaction
1596
+  (0.0ms) begin transaction
1597
+  (0.1ms) rollback transaction
1598
+  (0.0ms) begin transaction
1599
+  (0.0ms) rollback transaction
1600
+  (0.0ms) begin transaction
1601
+  (0.0ms) rollback transaction
1602
+  (0.0ms) begin transaction
1603
+  (0.0ms) rollback transaction
1604
+  (0.0ms) begin transaction
1605
+  (0.0ms) rollback transaction
1606
+  (0.0ms) begin transaction
1607
+  (0.0ms) rollback transaction
1608
+  (0.0ms) begin transaction
1609
+  (0.0ms) rollback transaction
1610
+  (0.0ms) begin transaction
1611
+  (0.0ms) rollback transaction
1612
+  (0.0ms) begin transaction
1613
+  (0.0ms) rollback transaction
1614
+  (0.0ms) begin transaction
1615
+  (0.0ms) rollback transaction
1616
+  (0.0ms) begin transaction
1617
+  (0.0ms) rollback transaction
@@ -0,0 +1 @@
1
+ [{"keyword":"Feature","name":"Searching on Google","line":2,"description":"","tags":[{"name":"@mechanize","line":1}],"id":"searching-on-google","uri":"features/google_search.feature","elements":[{"keyword":"Scenario","name":"Search for New York Times","line":3,"description":"","id":"searching-on-google;search-for-new-york-times","type":"scenario","steps":[{"keyword":"Given ","name":"I am at the google page","line":4,"match":{"location":"features/step_definitions/google_search_step.rb:1"},"result":{"status":"passed"}},{"keyword":"When ","name":"I search for \"New York Times\"","line":5,"match":{"arguments":[{"offset":14,"val":"New York Times"}],"location":"features/step_definitions/google_search_step.rb:5"},"result":{"status":"passed"}},{"keyword":"Then ","name":"I should se \"The New York Times - Breaking News, World News & Multimedia\"","line":6,"match":{"arguments":[{"offset":13,"val":"The New York Times - Breaking News, World News & Multimedia"}],"location":"features/step_definitions/google_search_step.rb:9"},"result":{"status":"passed"}}]}]}]
@@ -15,7 +15,8 @@ class FeatureFileTest < ActiveSupport::TestCase
15
15
  end
16
16
 
17
17
  test "feature should return its contexts when applicable" do
18
- assert_equal 1, @cucumber.features.last.contexts.size
18
+ feature = CucumberMonitor.new.features.where(name: 'change_my_data')
19
+ assert_equal 1, feature.contexts.size
19
20
  end
20
21
 
21
22
  end
data/test/setup.rb CHANGED
@@ -3,6 +3,7 @@ class Test::Unit::TestCase
3
3
  @cucumber = CucumberMonitor.new
4
4
  @feature_one = @cucumber.features.first
5
5
  @feature_two = @cucumber.features.last
6
+ @feature_three = @cucumber.features.where(name: 'change_my_data')
6
7
  @path = CucumberMonitor.path
7
8
  @root = CucumberMonitor::Engine.root
8
9
  copy_sample_features
@@ -17,7 +18,6 @@ class Test::Unit::TestCase
17
18
  end
18
19
 
19
20
  def copy_sample_features
20
- FileUtils.cp("#{@root}/features/administration.feature","#{@path}/features/administration.feature")
21
- FileUtils.cp("#{@root}/features/change_my_data.feature","#{@path}/features/change_my_data.feature")
21
+ FileUtils.cp_r("#{@root}/sample_files/features",@path)
22
22
  end
23
23
  end
data/test/step_test.rb CHANGED
@@ -3,34 +3,45 @@ require 'test_helper'
3
3
  class StepTest < ActiveSupport::TestCase
4
4
 
5
5
  test "step should return its siblings" do
6
- step = @feature_one.scenarios.first.steps.first
6
+ step = @feature_two.scenarios.first.steps.first
7
7
 
8
8
  siblings = [
9
- 'Given that there is an administrator with the email "admin@domain.com" and password "123456"',
10
- 'When I try to access the admin dashboard with the email "admin@domain.com" and senha "123456"',
11
- 'Then I should be at admin dashboard page',
9
+ 'Given I am at the google page',
10
+ 'When I search for "New York Times"',
11
+ 'Then I should see "The New York Times - Breaking News, World News & Multimedia"',
12
12
  ]
13
13
  assert_equal siblings, step.siblings_and_self.map(&:description)
14
14
  end
15
15
 
16
16
  test "step should get the previous step" do
17
- last_step = @feature_one.scenarios.first.steps.last
18
- previous_step = 'When I try to access the admin dashboard with the email "admin@domain.com" and senha "123456"'
17
+ last_step = @feature_two.scenarios.first.steps.last
18
+ previous_step = 'When I search for "New York Times"'
19
19
  assert_equal previous_step, last_step.previous.description
20
20
  end
21
21
 
22
22
  test "step should get the next step" do
23
- first_step = @feature_one.scenarios.first.steps.first
24
- next_step = 'When I try to access the admin dashboard with the email "admin@domain.com" and senha "123456"'
23
+ first_step = @feature_two.scenarios.first.steps.first
24
+ next_step = 'When I search for "New York Times"'
25
25
  assert_equal next_step, first_step.next.description
26
26
  end
27
27
 
28
28
  test "step should return empty array when there is no next or previous step" do
29
- first_step = @feature_one.scenarios.first.steps.first
30
- last_step = @feature_one.scenarios.first.steps.last
29
+ first_step = @feature_two.scenarios.first.steps.first
30
+ last_step = @feature_two.scenarios.first.steps.last
31
31
 
32
32
  assert_equal [], first_step.previous
33
33
  assert_equal [], last_step.next
34
34
  end
35
35
 
36
+ test "step should return the code of step definition" do
37
+ feature = @cucumber.features.where(name: 'google_search')
38
+ first_step = feature.scenarios.first.steps.first
39
+
40
+ expected_definition_lines = ['Given /^I am at the google page$/ do', 'visit "http://www.google.com"', 'end']
41
+
42
+ # expected_first_step_definition = 'google_search_step.rb:1'
43
+
44
+ assert_equal expected_definition_lines, first_step.definition.content
45
+ end
46
+
36
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber_monitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-27 00:00:00.000000000 Z
12
+ date: 2012-09-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -67,11 +67,13 @@ files:
67
67
  - lib/cucumber_monitor/array.rb
68
68
  - lib/cucumber_monitor/base.rb
69
69
  - lib/cucumber_monitor/context.rb
70
+ - lib/cucumber_monitor/definition.rb
70
71
  - lib/cucumber_monitor/engine.rb
71
72
  - lib/cucumber_monitor/feature_file.rb
72
73
  - lib/cucumber_monitor/feature_runner.rb
73
74
  - lib/cucumber_monitor/scenario.rb
74
75
  - lib/cucumber_monitor/step.rb
76
+ - lib/cucumber_monitor/step_definition_file.rb
75
77
  - lib/cucumber_monitor/string.rb
76
78
  - lib/cucumber_monitor/version.rb
77
79
  - lib/cucumber_monitor.rb
@@ -107,7 +109,10 @@ files:
107
109
  - test/dummy/db/test.sqlite3
108
110
  - test/dummy/features/administration.feature
109
111
  - test/dummy/features/change_my_data.feature
112
+ - test/dummy/features/google_search.feature
113
+ - test/dummy/features/step_definitions/google_search_step.rb
110
114
  - test/dummy/features/support/env.rb
115
+ - test/dummy/features/support/mechanize.rb
111
116
  - test/dummy/lib/tasks/cucumber.rake
112
117
  - test/dummy/log/development.log
113
118
  - test/dummy/log/test.log
@@ -119,13 +124,14 @@ files:
119
124
  - test/dummy/README.rdoc
120
125
  - test/dummy/script/cucumber
121
126
  - test/dummy/script/rails
127
+ - test/dummy/tmp/cucumber.out
122
128
  - test/feature_file_test.rb
123
129
  - test/integration/navigation_test.rb
124
130
  - test/scenario_test.rb
125
131
  - test/setup.rb
126
132
  - test/step_test.rb
127
133
  - test/test_helper.rb
128
- homepage: http://www.webhall.com.br
134
+ homepage: https://github.com/davidwilliam/cucumber_monitor
129
135
  licenses: []
130
136
  post_install_message:
131
137
  rdoc_options: []
@@ -179,7 +185,10 @@ test_files:
179
185
  - test/dummy/db/test.sqlite3
180
186
  - test/dummy/features/administration.feature
181
187
  - test/dummy/features/change_my_data.feature
188
+ - test/dummy/features/google_search.feature
189
+ - test/dummy/features/step_definitions/google_search_step.rb
182
190
  - test/dummy/features/support/env.rb
191
+ - test/dummy/features/support/mechanize.rb
183
192
  - test/dummy/lib/tasks/cucumber.rake
184
193
  - test/dummy/log/development.log
185
194
  - test/dummy/log/test.log
@@ -191,6 +200,7 @@ test_files:
191
200
  - test/dummy/README.rdoc
192
201
  - test/dummy/script/cucumber
193
202
  - test/dummy/script/rails
203
+ - test/dummy/tmp/cucumber.out
194
204
  - test/feature_file_test.rb
195
205
  - test/integration/navigation_test.rb
196
206
  - test/scenario_test.rb