hiptest-publisher-fork 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (498) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +295 -0
  3. data/LICENSE +21 -0
  4. data/README.md +265 -0
  5. data/bin/hiptest-publisher +47 -0
  6. data/config/i18n-tasks.yml +137 -0
  7. data/config/locales/en.yml +250 -0
  8. data/lib/config/behat.conf +44 -0
  9. data/lib/config/behave.conf +40 -0
  10. data/lib/config/csharp-nunit.conf +15 -0
  11. data/lib/config/cucumber-groovy.conf +40 -0
  12. data/lib/config/cucumber-java.conf +24 -0
  13. data/lib/config/cucumber-javascript.conf +23 -0
  14. data/lib/config/cucumber-ruby.conf +22 -0
  15. data/lib/config/cucumber-typescript.conf +41 -0
  16. data/lib/config/cucumber_legacy-groovy.conf +40 -0
  17. data/lib/config/cucumber_legacy-java.conf +24 -0
  18. data/lib/config/cucumber_legacy-typescript.conf +41 -0
  19. data/lib/config/groovy-spock.conf +25 -0
  20. data/lib/config/java-espresso.conf +15 -0
  21. data/lib/config/java-junit.conf +21 -0
  22. data/lib/config/java-testng.conf +15 -0
  23. data/lib/config/javascript-codeceptjs.conf +23 -0
  24. data/lib/config/javascript-jasmine.conf +12 -0
  25. data/lib/config/javascript-mocha.conf +12 -0
  26. data/lib/config/javascript-protractor.conf +12 -0
  27. data/lib/config/javascript-qunit.conf +12 -0
  28. data/lib/config/jbehave.conf +24 -0
  29. data/lib/config/php-phpunit.conf +14 -0
  30. data/lib/config/python-unittest.conf +13 -0
  31. data/lib/config/robotframework.conf +13 -0
  32. data/lib/config/ruby-minitest.conf +11 -0
  33. data/lib/config/ruby-rspec.conf +11 -0
  34. data/lib/config/seleniumide.conf +12 -0
  35. data/lib/config/specflow.conf +25 -0
  36. data/lib/config/swift-xctest.conf +18 -0
  37. data/lib/hiptest-publisher/cli_options_checker.rb +270 -0
  38. data/lib/hiptest-publisher/client.rb +326 -0
  39. data/lib/hiptest-publisher/export_cache.rb +85 -0
  40. data/lib/hiptest-publisher/file_writer.rb +30 -0
  41. data/lib/hiptest-publisher/formatters/console_formatter.rb +101 -0
  42. data/lib/hiptest-publisher/formatters/diff_displayer.rb +173 -0
  43. data/lib/hiptest-publisher/formatters/reporter.rb +74 -0
  44. data/lib/hiptest-publisher/handlebars_helper.rb +314 -0
  45. data/lib/hiptest-publisher/i18n.rb +5 -0
  46. data/lib/hiptest-publisher/indexers/actionword_indexer.rb +32 -0
  47. data/lib/hiptest-publisher/indexers/library_actionword_indexer.rb +32 -0
  48. data/lib/hiptest-publisher/node_modifiers/actionword_uniq_renamer.rb +39 -0
  49. data/lib/hiptest-publisher/node_modifiers/add_all.rb +21 -0
  50. data/lib/hiptest-publisher/node_modifiers/call_arguments_adder.rb +46 -0
  51. data/lib/hiptest-publisher/node_modifiers/datatable_fixer.rb +32 -0
  52. data/lib/hiptest-publisher/node_modifiers/gherkin_adder.rb +252 -0
  53. data/lib/hiptest-publisher/node_modifiers/items_orderer.rb +33 -0
  54. data/lib/hiptest-publisher/node_modifiers/parameter_type_adder.rb +141 -0
  55. data/lib/hiptest-publisher/node_modifiers/parent_adder.rb +18 -0
  56. data/lib/hiptest-publisher/nodes.rb +601 -0
  57. data/lib/hiptest-publisher/nodes_walker.rb +34 -0
  58. data/lib/hiptest-publisher/options_parser.rb +826 -0
  59. data/lib/hiptest-publisher/project_grapher.rb +94 -0
  60. data/lib/hiptest-publisher/render_context_maker.rb +194 -0
  61. data/lib/hiptest-publisher/renderer.rb +52 -0
  62. data/lib/hiptest-publisher/renderer_addons/behave_addon.rb +23 -0
  63. data/lib/hiptest-publisher/renderer_addons/gherkin_addon.rb +59 -0
  64. data/lib/hiptest-publisher/renderer_addons/groovy_spock_addon.rb +34 -0
  65. data/lib/hiptest-publisher/renderer_addons/robot_framework_addon.rb +42 -0
  66. data/lib/hiptest-publisher/renderer_addons.rb +4 -0
  67. data/lib/hiptest-publisher/signature_differ.rb +105 -0
  68. data/lib/hiptest-publisher/signature_exporter.rb +56 -0
  69. data/lib/hiptest-publisher/string.rb +76 -0
  70. data/lib/hiptest-publisher/utils.rb +39 -0
  71. data/lib/hiptest-publisher/version_checker.rb +41 -0
  72. data/lib/hiptest-publisher/xml_parser.rb +407 -0
  73. data/lib/hiptest-publisher.rb +261 -0
  74. data/lib/templates/behat/actionword.hbs +8 -0
  75. data/lib/templates/behat/actionwords/parameter.hbs +1 -0
  76. data/lib/templates/behat/actionwords.hbs +16 -0
  77. data/lib/templates/behat/library.hbs +16 -0
  78. data/lib/templates/behat/libraryactionword.hbs +8 -0
  79. data/lib/templates/behat/parameter.hbs +1 -0
  80. data/lib/templates/behave/actionword.hbs +4 -0
  81. data/lib/templates/behave/actionwords.hbs +12 -0
  82. data/lib/templates/behave/library.hbs +7 -0
  83. data/lib/templates/behave/libraryactionword.hbs +4 -0
  84. data/lib/templates/behave/nullliteral.hbs +1 -0
  85. data/lib/templates/common/_gherkin_pattern.hbs +1 -0
  86. data/lib/templates/common/_gherkin_typed_pattern.hbs +1 -0
  87. data/lib/templates/common/booleanliteral.hbs +1 -0
  88. data/lib/templates/common/dataset.hbs +0 -0
  89. data/lib/templates/common/datatable.hbs +3 -0
  90. data/lib/templates/common/empty.hbs +0 -0
  91. data/lib/templates/common/nullliteral.hbs +1 -0
  92. data/lib/templates/common/numericliteral.hbs +1 -0
  93. data/lib/templates/common/stringliteral.hbs +1 -0
  94. data/lib/templates/common/symbol.hbs +1 -0
  95. data/lib/templates/common/unaryexpression.hbs +1 -0
  96. data/lib/templates/common/variable.hbs +1 -0
  97. data/lib/templates/csharp/_body.hbs +5 -0
  98. data/lib/templates/csharp/_item_as_function.hbs +8 -0
  99. data/lib/templates/csharp/_scenario.hbs +8 -0
  100. data/lib/templates/csharp/actionword.hbs +1 -0
  101. data/lib/templates/csharp/actionwords.hbs +10 -0
  102. data/lib/templates/csharp/argument.hbs +1 -0
  103. data/lib/templates/csharp/assign.hbs +1 -0
  104. data/lib/templates/csharp/binaryexpression.hbs +1 -0
  105. data/lib/templates/csharp/call.hbs +2 -0
  106. data/lib/templates/csharp/dataset.hbs +4 -0
  107. data/lib/templates/csharp/dict.hbs +1 -0
  108. data/lib/templates/csharp/field.hbs +1 -0
  109. data/lib/templates/csharp/folder.hbs +22 -0
  110. data/lib/templates/csharp/ifthen.hbs +7 -0
  111. data/lib/templates/csharp/index.hbs +1 -0
  112. data/lib/templates/csharp/list.hbs +1 -0
  113. data/lib/templates/csharp/nullliteral.hbs +1 -0
  114. data/lib/templates/csharp/parameter.hbs +1 -0
  115. data/lib/templates/csharp/parenthesis.hbs +1 -0
  116. data/lib/templates/csharp/property.hbs +1 -0
  117. data/lib/templates/csharp/scenario.hbs +1 -0
  118. data/lib/templates/csharp/scenarios.hbs +20 -0
  119. data/lib/templates/csharp/single_scenario.hbs +16 -0
  120. data/lib/templates/csharp/single_test.hbs +15 -0
  121. data/lib/templates/csharp/step.hbs +1 -0
  122. data/lib/templates/csharp/stringliteral.hbs +1 -0
  123. data/lib/templates/csharp/tag.hbs +1 -0
  124. data/lib/templates/csharp/template.hbs +1 -0
  125. data/lib/templates/csharp/test.hbs +1 -0
  126. data/lib/templates/csharp/tests.hbs +15 -0
  127. data/lib/templates/csharp/variable.hbs +1 -0
  128. data/lib/templates/csharp/while.hbs +4 -0
  129. data/lib/templates/cucumber/actionword.hbs +5 -0
  130. data/lib/templates/cucumber/actionwords.hbs +5 -0
  131. data/lib/templates/cucumber/groovy/step-definitions/_gherkin_pattern.hbs +1 -0
  132. data/lib/templates/cucumber/groovy/step-definitions/actionword.hbs +5 -0
  133. data/lib/templates/cucumber/groovy/step-definitions/actionwords.hbs +11 -0
  134. data/lib/templates/cucumber/groovy/step-definitions/library.hbs +11 -0
  135. data/lib/templates/cucumber/groovy/step-definitions/libraryactionword.hbs +5 -0
  136. data/lib/templates/cucumber/groovy/step-definitions/parameter.hbs +1 -0
  137. data/lib/templates/cucumber/java/actionword.hbs +6 -0
  138. data/lib/templates/cucumber/java/actionwords/parameter.hbs +1 -0
  139. data/lib/templates/cucumber/java/actionwords.hbs +12 -0
  140. data/lib/templates/cucumber/java/parameter.hbs +1 -0
  141. data/lib/templates/cucumber/javascript/_after_hook.hbs +4 -0
  142. data/lib/templates/cucumber/javascript/_before_hook.hbs +4 -0
  143. data/lib/templates/cucumber/javascript/actionword.hbs +6 -0
  144. data/lib/templates/cucumber/javascript/actionwords.hbs +8 -0
  145. data/lib/templates/cucumber/parameter.hbs +1 -0
  146. data/lib/templates/cucumber/typescript/_after_hook.hbs +4 -0
  147. data/lib/templates/cucumber/typescript/_before_hook.hbs +4 -0
  148. data/lib/templates/cucumber/typescript/actionword.hbs +5 -0
  149. data/lib/templates/cucumber/typescript/actionwords.hbs +10 -0
  150. data/lib/templates/cucumber/typescript/library.hbs +12 -0
  151. data/lib/templates/cucumber/typescript/libraryactionword.hbs +5 -0
  152. data/lib/templates/cucumber_legacy/groovy/step-definitions/actionword.hbs +5 -0
  153. data/lib/templates/cucumber_legacy/groovy/step-definitions/actionwords.hbs +10 -0
  154. data/lib/templates/cucumber_legacy/groovy/step-definitions/library.hbs +10 -0
  155. data/lib/templates/cucumber_legacy/groovy/step-definitions/libraryactionword.hbs +5 -0
  156. data/lib/templates/cucumber_legacy/java/actionword.hbs +6 -0
  157. data/lib/templates/cucumber_legacy/java/actionwords.hbs +12 -0
  158. data/lib/templates/cucumber_legacy/typescript/actionword.hbs +5 -0
  159. data/lib/templates/cucumber_legacy/typescript/libraryactionword.hbs +5 -0
  160. data/lib/templates/gherkin/_call.hbs +5 -0
  161. data/lib/templates/gherkin/_gherkin_text.hbs +1 -0
  162. data/lib/templates/gherkin/_scenario.hbs +18 -0
  163. data/lib/templates/gherkin/_scenario_outline_title.hbs +1 -0
  164. data/lib/templates/gherkin/argument.hbs +1 -0
  165. data/lib/templates/gherkin/call.hbs +1 -0
  166. data/lib/templates/gherkin/dataset.hbs +1 -0
  167. data/lib/templates/gherkin/datatable.hbs +2 -0
  168. data/lib/templates/gherkin/folder.hbs +10 -0
  169. data/lib/templates/gherkin/inlined_uids/_scenario_outline_title.hbs +1 -0
  170. data/lib/templates/gherkin/java/single_scenario.hbs +1 -0
  171. data/lib/templates/gherkin/parameter.hbs +1 -0
  172. data/lib/templates/gherkin/scenarios.hbs +3 -0
  173. data/lib/templates/gherkin/single_scenario.hbs +1 -0
  174. data/lib/templates/gherkin/single_test.hbs +3 -0
  175. data/lib/templates/gherkin/step.hbs +1 -0
  176. data/lib/templates/gherkin/stringliteral.hbs +1 -0
  177. data/lib/templates/gherkin/tag.hbs +1 -0
  178. data/lib/templates/gherkin/template.hbs +1 -0
  179. data/lib/templates/groovy/_body.hbs +8 -0
  180. data/lib/templates/groovy/_desc.hbs +5 -0
  181. data/lib/templates/groovy/_scenario.hbs +10 -0
  182. data/lib/templates/groovy/_steps.hbs +4 -0
  183. data/lib/templates/groovy/_test.hbs +4 -0
  184. data/lib/templates/groovy/actionword.hbs +2 -0
  185. data/lib/templates/groovy/actionwords.hbs +7 -0
  186. data/lib/templates/groovy/assign.hbs +1 -0
  187. data/lib/templates/groovy/call.hbs +2 -0
  188. data/lib/templates/groovy/dataset.hbs +1 -0
  189. data/lib/templates/groovy/datatable.hbs +2 -0
  190. data/lib/templates/groovy/dict.hbs +1 -0
  191. data/lib/templates/groovy/folder.hbs +18 -0
  192. data/lib/templates/groovy/index.hbs +1 -0
  193. data/lib/templates/groovy/libraries.hbs +9 -0
  194. data/lib/templates/groovy/library.hbs +8 -0
  195. data/lib/templates/groovy/libraryactionword.hbs +2 -0
  196. data/lib/templates/groovy/list.hbs +1 -0
  197. data/lib/templates/groovy/nullliteral.hbs +1 -0
  198. data/lib/templates/groovy/parameter.hbs +1 -0
  199. data/lib/templates/groovy/property.hbs +1 -0
  200. data/lib/templates/groovy/scenario.hbs +1 -0
  201. data/lib/templates/groovy/scenarios.hbs +10 -0
  202. data/lib/templates/groovy/single_scenario.hbs +9 -0
  203. data/lib/templates/groovy/single_test.hbs +10 -0
  204. data/lib/templates/groovy/template.hbs +1 -0
  205. data/lib/templates/groovy/test.hbs +1 -0
  206. data/lib/templates/groovy/tests.hbs +10 -0
  207. data/lib/templates/java/_body.hbs +5 -0
  208. data/lib/templates/java/_item_as_function.hbs +8 -0
  209. data/lib/templates/java/_scenario.hbs +7 -0
  210. data/lib/templates/java/actionword.hbs +1 -0
  211. data/lib/templates/java/actionwords.hbs +8 -0
  212. data/lib/templates/java/argument.hbs +1 -0
  213. data/lib/templates/java/assign.hbs +1 -0
  214. data/lib/templates/java/binaryexpression.hbs +1 -0
  215. data/lib/templates/java/call.hbs +2 -0
  216. data/lib/templates/java/dataset.hbs +3 -0
  217. data/lib/templates/java/dict.hbs +1 -0
  218. data/lib/templates/java/espresso/_scenario.hbs +8 -0
  219. data/lib/templates/java/espresso/dataset.hbs +4 -0
  220. data/lib/templates/java/espresso/folder.hbs +29 -0
  221. data/lib/templates/java/espresso/scenarios.hbs +23 -0
  222. data/lib/templates/java/espresso/single_scenario.hbs +24 -0
  223. data/lib/templates/java/espresso/single_test.hbs +22 -0
  224. data/lib/templates/java/espresso/tests.hbs +23 -0
  225. data/lib/templates/java/field.hbs +1 -0
  226. data/lib/templates/java/folder.hbs +18 -0
  227. data/lib/templates/java/ifthen.hbs +7 -0
  228. data/lib/templates/java/index.hbs +1 -0
  229. data/lib/templates/java/libraries.hbs +9 -0
  230. data/lib/templates/java/library.hbs +7 -0
  231. data/lib/templates/java/libraryactionword.hbs +1 -0
  232. data/lib/templates/java/list.hbs +1 -0
  233. data/lib/templates/java/nullliteral.hbs +1 -0
  234. data/lib/templates/java/parameter.hbs +1 -0
  235. data/lib/templates/java/parenthesis.hbs +1 -0
  236. data/lib/templates/java/property.hbs +1 -0
  237. data/lib/templates/java/scenario.hbs +1 -0
  238. data/lib/templates/java/scenarios.hbs +11 -0
  239. data/lib/templates/java/single_scenario.hbs +12 -0
  240. data/lib/templates/java/single_test.hbs +11 -0
  241. data/lib/templates/java/step.hbs +1 -0
  242. data/lib/templates/java/stringliteral.hbs +1 -0
  243. data/lib/templates/java/tag.hbs +1 -0
  244. data/lib/templates/java/template.hbs +1 -0
  245. data/lib/templates/java/test.hbs +1 -0
  246. data/lib/templates/java/testng/_scenario.hbs +8 -0
  247. data/lib/templates/java/testng/dataset.hbs +4 -0
  248. data/lib/templates/java/testng/folder.hbs +19 -0
  249. data/lib/templates/java/testng/scenarios.hbs +16 -0
  250. data/lib/templates/java/testng/single_scenario.hbs +12 -0
  251. data/lib/templates/java/testng/single_test.hbs +11 -0
  252. data/lib/templates/java/testng/tests.hbs +16 -0
  253. data/lib/templates/java/tests.hbs +11 -0
  254. data/lib/templates/java/variable.hbs +1 -0
  255. data/lib/templates/java/while.hbs +4 -0
  256. data/lib/templates/javascript/_body.hbs +10 -0
  257. data/lib/templates/javascript/_item_as_function.hbs +3 -0
  258. data/lib/templates/javascript/_item_as_hash_key.hbs +3 -0
  259. data/lib/templates/javascript/_module_declaration.hbs +5 -0
  260. data/lib/templates/javascript/_scenario.hbs +4 -0
  261. data/lib/templates/javascript/actionword.hbs +1 -0
  262. data/lib/templates/javascript/actionwords.hbs +4 -0
  263. data/lib/templates/javascript/argument.hbs +1 -0
  264. data/lib/templates/javascript/assign.hbs +1 -0
  265. data/lib/templates/javascript/binaryexpression.hbs +1 -0
  266. data/lib/templates/javascript/call.hbs +2 -0
  267. data/lib/templates/javascript/codeceptjs/actionword.hbs +5 -0
  268. data/lib/templates/javascript/codeceptjs/actionwords.hbs +9 -0
  269. data/lib/templates/javascript/dataset.hbs +3 -0
  270. data/lib/templates/javascript/dict.hbs +1 -0
  271. data/lib/templates/javascript/es6/actionwords.hbs +4 -0
  272. data/lib/templates/javascript/field.hbs +1 -0
  273. data/lib/templates/javascript/folder.hbs +14 -0
  274. data/lib/templates/javascript/ifthen.hbs +7 -0
  275. data/lib/templates/javascript/index.hbs +1 -0
  276. data/lib/templates/javascript/jasmine/_before_each.hbs +3 -0
  277. data/lib/templates/javascript/jasmine/_scenario.hbs +8 -0
  278. data/lib/templates/javascript/jasmine/dataset.hbs +3 -0
  279. data/lib/templates/javascript/jasmine/folder.hbs +11 -0
  280. data/lib/templates/javascript/jasmine/scenarios.hbs +8 -0
  281. data/lib/templates/javascript/jasmine/single_scenario.hbs +6 -0
  282. data/lib/templates/javascript/jasmine/single_test.hbs +6 -0
  283. data/lib/templates/javascript/jasmine/tests.hbs +8 -0
  284. data/lib/templates/javascript/list.hbs +1 -0
  285. data/lib/templates/javascript/mocha/_before_each.hbs +4 -0
  286. data/lib/templates/javascript/mocha/folder.hbs +11 -0
  287. data/lib/templates/javascript/nullliteral.hbs +1 -0
  288. data/lib/templates/javascript/parameter.hbs +1 -0
  289. data/lib/templates/javascript/parenthesis.hbs +1 -0
  290. data/lib/templates/javascript/project.hbs +2 -0
  291. data/lib/templates/javascript/property.hbs +1 -0
  292. data/lib/templates/javascript/scenario.hbs +1 -0
  293. data/lib/templates/javascript/scenarios.hbs +8 -0
  294. data/lib/templates/javascript/single_scenario.hbs +6 -0
  295. data/lib/templates/javascript/single_test.hbs +6 -0
  296. data/lib/templates/javascript/step.hbs +1 -0
  297. data/lib/templates/javascript/tag.hbs +1 -0
  298. data/lib/templates/javascript/template.hbs +1 -0
  299. data/lib/templates/javascript/test.hbs +1 -0
  300. data/lib/templates/javascript/tests.hbs +8 -0
  301. data/lib/templates/javascript/while.hbs +5 -0
  302. data/lib/templates/jbehave/_scenario.hbs +9 -0
  303. data/lib/templates/jbehave/actionwords/parameter.hbs +1 -0
  304. data/lib/templates/jbehave/call.hbs +5 -0
  305. data/lib/templates/jbehave/folder.hbs +16 -0
  306. data/lib/templates/jbehave/single_test.hbs +3 -0
  307. data/lib/templates/jbehave/steps/_gherkin_pattern.hbs +1 -0
  308. data/lib/templates/jbehave/steps/actionword.hbs +6 -0
  309. data/lib/templates/jbehave/steps/actionwords.hbs +18 -0
  310. data/lib/templates/php/_body.hbs +9 -0
  311. data/lib/templates/php/_item_as_function.hbs +3 -0
  312. data/lib/templates/php/_scenario.hbs +4 -0
  313. data/lib/templates/php/_setup.hbs +4 -0
  314. data/lib/templates/php/actionword.hbs +1 -0
  315. data/lib/templates/php/actionwords.hbs +9 -0
  316. data/lib/templates/php/argument.hbs +1 -0
  317. data/lib/templates/php/assign.hbs +1 -0
  318. data/lib/templates/php/binaryexpression.hbs +1 -0
  319. data/lib/templates/php/call.hbs +2 -0
  320. data/lib/templates/php/dataset.hbs +3 -0
  321. data/lib/templates/php/dict.hbs +1 -0
  322. data/lib/templates/php/field.hbs +1 -0
  323. data/lib/templates/php/folder.hbs +17 -0
  324. data/lib/templates/php/ifthen.hbs +7 -0
  325. data/lib/templates/php/index.hbs +1 -0
  326. data/lib/templates/php/libraries.hbs +11 -0
  327. data/lib/templates/php/library.hbs +20 -0
  328. data/lib/templates/php/libraryactionword.hbs +1 -0
  329. data/lib/templates/php/list.hbs +1 -0
  330. data/lib/templates/php/nullliteral.hbs +1 -0
  331. data/lib/templates/php/parameter.hbs +1 -0
  332. data/lib/templates/php/parenthesis.hbs +1 -0
  333. data/lib/templates/php/project.hbs +2 -0
  334. data/lib/templates/php/property.hbs +1 -0
  335. data/lib/templates/php/scenario.hbs +1 -0
  336. data/lib/templates/php/scenarios.hbs +13 -0
  337. data/lib/templates/php/single_scenario.hbs +11 -0
  338. data/lib/templates/php/single_test.hbs +11 -0
  339. data/lib/templates/php/step.hbs +1 -0
  340. data/lib/templates/php/tag.hbs +1 -0
  341. data/lib/templates/php/template.hbs +1 -0
  342. data/lib/templates/php/test.hbs +1 -0
  343. data/lib/templates/php/tests.hbs +13 -0
  344. data/lib/templates/php/variable.hbs +1 -0
  345. data/lib/templates/php/while.hbs +5 -0
  346. data/lib/templates/python/_body.hbs +11 -0
  347. data/lib/templates/python/_item_as_def.hbs +2 -0
  348. data/lib/templates/python/_parameters.hbs +1 -0
  349. data/lib/templates/python/_scenario.hbs +4 -0
  350. data/lib/templates/python/actionword.hbs +1 -0
  351. data/lib/templates/python/actionwords.hbs +12 -0
  352. data/lib/templates/python/argument.hbs +1 -0
  353. data/lib/templates/python/assign.hbs +1 -0
  354. data/lib/templates/python/binaryexpression.hbs +1 -0
  355. data/lib/templates/python/booleanliteral.hbs +1 -0
  356. data/lib/templates/python/call.hbs +2 -0
  357. data/lib/templates/python/dataset.hbs +2 -0
  358. data/lib/templates/python/dict.hbs +1 -0
  359. data/lib/templates/python/field.hbs +1 -0
  360. data/lib/templates/python/folder.hbs +12 -0
  361. data/lib/templates/python/ifthen.hbs +4 -0
  362. data/lib/templates/python/index.hbs +1 -0
  363. data/lib/templates/python/libraries.hbs +9 -0
  364. data/lib/templates/python/library.hbs +17 -0
  365. data/lib/templates/python/libraryactionword.hbs +1 -0
  366. data/lib/templates/python/list.hbs +1 -0
  367. data/lib/templates/python/nullliteral.hbs +1 -0
  368. data/lib/templates/python/parameter.hbs +1 -0
  369. data/lib/templates/python/parenthesis.hbs +1 -0
  370. data/lib/templates/python/project.hbs +2 -0
  371. data/lib/templates/python/property.hbs +1 -0
  372. data/lib/templates/python/scenario.hbs +1 -0
  373. data/lib/templates/python/scenarios.hbs +11 -0
  374. data/lib/templates/python/single_scenario.hbs +9 -0
  375. data/lib/templates/python/single_test.hbs +9 -0
  376. data/lib/templates/python/step.hbs +1 -0
  377. data/lib/templates/python/tag.hbs +1 -0
  378. data/lib/templates/python/template.hbs +1 -0
  379. data/lib/templates/python/test.hbs +1 -0
  380. data/lib/templates/python/tests.hbs +11 -0
  381. data/lib/templates/python/unittest/actionwords.hbs +9 -0
  382. data/lib/templates/python/while.hbs +4 -0
  383. data/lib/templates/robotframework/_keyword.hbs +1 -0
  384. data/lib/templates/robotframework/_keyword_body.hbs +4 -0
  385. data/lib/templates/robotframework/_scenario.hbs +12 -0
  386. data/lib/templates/robotframework/actionword.hbs +3 -0
  387. data/lib/templates/robotframework/actionwords.hbs +4 -0
  388. data/lib/templates/robotframework/argument.hbs +1 -0
  389. data/lib/templates/robotframework/call.hbs +1 -0
  390. data/lib/templates/robotframework/dataset.hbs +1 -0
  391. data/lib/templates/robotframework/datatable.hbs +2 -0
  392. data/lib/templates/robotframework/folder.hbs +35 -0
  393. data/lib/templates/robotframework/ifthen.hbs +1 -0
  394. data/lib/templates/robotframework/parameter.hbs +1 -0
  395. data/lib/templates/robotframework/property.hbs +1 -0
  396. data/lib/templates/robotframework/scenarios.hbs +25 -0
  397. data/lib/templates/robotframework/single_scenario.hbs +10 -0
  398. data/lib/templates/robotframework/single_test.hbs +10 -0
  399. data/lib/templates/robotframework/stringliteral.hbs +1 -0
  400. data/lib/templates/robotframework/template.hbs +1 -0
  401. data/lib/templates/robotframework/test.hbs +1 -0
  402. data/lib/templates/robotframework/tests.hbs +7 -0
  403. data/lib/templates/robotframework/variable.hbs +1 -0
  404. data/lib/templates/robotframework/while.hbs +1 -0
  405. data/lib/templates/ruby/_body.hbs +10 -0
  406. data/lib/templates/ruby/_item_as_def.hbs +3 -0
  407. data/lib/templates/ruby/_scenario.hbs +5 -0
  408. data/lib/templates/ruby/actionword.hbs +1 -0
  409. data/lib/templates/ruby/actionwords.hbs +6 -0
  410. data/lib/templates/ruby/argument.hbs +1 -0
  411. data/lib/templates/ruby/assign.hbs +1 -0
  412. data/lib/templates/ruby/binaryexpression.hbs +1 -0
  413. data/lib/templates/ruby/call.hbs +2 -0
  414. data/lib/templates/ruby/dataset.hbs +3 -0
  415. data/lib/templates/ruby/dict.hbs +1 -0
  416. data/lib/templates/ruby/field.hbs +1 -0
  417. data/lib/templates/ruby/folder.hbs +16 -0
  418. data/lib/templates/ruby/ifthen.hbs +7 -0
  419. data/lib/templates/ruby/index.hbs +1 -0
  420. data/lib/templates/ruby/list.hbs +1 -0
  421. data/lib/templates/ruby/minitest/_item_as_def.hbs +3 -0
  422. data/lib/templates/ruby/minitest/_scenario.hbs +4 -0
  423. data/lib/templates/ruby/minitest/dataset.hbs +3 -0
  424. data/lib/templates/ruby/minitest/folder.hbs +18 -0
  425. data/lib/templates/ruby/minitest/scenario.hbs +1 -0
  426. data/lib/templates/ruby/minitest/scenarios.hbs +13 -0
  427. data/lib/templates/ruby/minitest/single_scenario.hbs +11 -0
  428. data/lib/templates/ruby/minitest/single_test.hbs +11 -0
  429. data/lib/templates/ruby/minitest/test.hbs +1 -0
  430. data/lib/templates/ruby/minitest/tests.hbs +13 -0
  431. data/lib/templates/ruby/parameter.hbs +1 -0
  432. data/lib/templates/ruby/parenthesis.hbs +1 -0
  433. data/lib/templates/ruby/project.hbs +2 -0
  434. data/lib/templates/ruby/property.hbs +1 -0
  435. data/lib/templates/ruby/scenario.hbs +1 -0
  436. data/lib/templates/ruby/scenarios.hbs +12 -0
  437. data/lib/templates/ruby/single_scenario.hbs +11 -0
  438. data/lib/templates/ruby/single_test.hbs +11 -0
  439. data/lib/templates/ruby/step.hbs +1 -0
  440. data/lib/templates/ruby/symbol.hbs +1 -0
  441. data/lib/templates/ruby/tag.hbs +1 -0
  442. data/lib/templates/ruby/template.hbs +1 -0
  443. data/lib/templates/ruby/test.hbs +1 -0
  444. data/lib/templates/ruby/tests.hbs +12 -0
  445. data/lib/templates/ruby/while.hbs +5 -0
  446. data/lib/templates/seleniumide/argument.hbs +1 -0
  447. data/lib/templates/seleniumide/call.hbs +6 -0
  448. data/lib/templates/seleniumide/single_test.hbs +28 -0
  449. data/lib/templates/seleniumide/step.hbs +0 -0
  450. data/lib/templates/seleniumide/stringliteral.hbs +1 -0
  451. data/lib/templates/seleniumide/template.hbs +1 -0
  452. data/lib/templates/seleniumide/test.hbs +4 -0
  453. data/lib/templates/seleniumide/tests.hbs +19 -0
  454. data/lib/templates/specflow/actionword.hbs +6 -0
  455. data/lib/templates/specflow/actionwords/parameter.hbs +1 -0
  456. data/lib/templates/specflow/actionwords.hbs +14 -0
  457. data/lib/templates/specflow/gherkin/tag.hbs +1 -0
  458. data/lib/templates/specflow/parameter.hbs +1 -0
  459. data/lib/templates/swift/_body.hbs +11 -0
  460. data/lib/templates/swift/_item_as_def.hbs +5 -0
  461. data/lib/templates/swift/_scenario.hbs +7 -0
  462. data/lib/templates/swift/actionword.hbs +1 -0
  463. data/lib/templates/swift/actionwords.hbs +6 -0
  464. data/lib/templates/swift/argument.hbs +1 -0
  465. data/lib/templates/swift/assign.hbs +1 -0
  466. data/lib/templates/swift/binaryexpression.hbs +1 -0
  467. data/lib/templates/swift/call.hbs +2 -0
  468. data/lib/templates/swift/dataset.hbs +4 -0
  469. data/lib/templates/swift/dict.hbs +1 -0
  470. data/lib/templates/swift/field.hbs +1 -0
  471. data/lib/templates/swift/folder.hbs +23 -0
  472. data/lib/templates/swift/ifthen.hbs +7 -0
  473. data/lib/templates/swift/index.hbs +1 -0
  474. data/lib/templates/swift/list.hbs +1 -0
  475. data/lib/templates/swift/parameter.hbs +1 -0
  476. data/lib/templates/swift/parenthesis.hbs +1 -0
  477. data/lib/templates/swift/project.hbs +2 -0
  478. data/lib/templates/swift/property.hbs +1 -0
  479. data/lib/templates/swift/scenario.hbs +1 -0
  480. data/lib/templates/swift/scenarios.hbs +25 -0
  481. data/lib/templates/swift/single_scenario.hbs +24 -0
  482. data/lib/templates/swift/single_test.hbs +23 -0
  483. data/lib/templates/swift/step.hbs +1 -0
  484. data/lib/templates/swift/stringliteral.hbs +1 -0
  485. data/lib/templates/swift/symbol.hbs +1 -0
  486. data/lib/templates/swift/tag.hbs +1 -0
  487. data/lib/templates/swift/template.hbs +1 -0
  488. data/lib/templates/swift/test.hbs +1 -0
  489. data/lib/templates/swift/tests.hbs +25 -0
  490. data/lib/templates/swift/while.hbs +5 -0
  491. data/lib/templates/typescript/_item_as_function.hbs +3 -0
  492. data/lib/templates/typescript/actionword.hbs +1 -0
  493. data/lib/templates/typescript/actionwords.hbs +7 -0
  494. data/lib/templates/typescript/libraries.hbs +9 -0
  495. data/lib/templates/typescript/library.hbs +18 -0
  496. data/lib/templates/typescript/libraryactionword.hbs +1 -0
  497. data/lib/templates/typescript/parameter.hbs +1 -0
  498. metadata +783 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6a3f53167dc3f83f91c0ac374527d580eeec9f4ce690d8a51b6c8537f7b98b6a
4
+ data.tar.gz: 01daaed30e6e4cf04bcb72c660842b4306db69c4dd2899cc9a6a12ceb1d181f4
5
+ SHA512:
6
+ metadata.gz: 5b3770a9f610e2cb01b193c89c65b320749fbd235a05791d1dd0c3467d3d4c401e3f88ab0e804148a0f67dac555618c3ce9c641eb24eb82796da5dd281cdc1ce
7
+ data.tar.gz: '01582058bd0f7a4092f73bd909c8602d8668f38218979c775ffcbd95c1c0394f60fd446b2e5e3d71f0ff0e6f5d9e9c2792e5114dc0ff1fd1e1436c81114e8822'
data/CHANGELOG.md ADDED
@@ -0,0 +1,295 @@
1
+ # HipTest Publisher Changelog
2
+
3
+ ## [3.3.0]
4
+
5
+ - Adding support for ruby 3.2.0
6
+
7
+ ## [3.2.0]
8
+
9
+ - Dropping support for ruby < 2.7
10
+ - Adding support for ruby 3.0
11
+
12
+ ## [3.1.0]
13
+
14
+ - Add options related to builds (or execution cycles) in CucumberStudio:
15
+ - `--build-id`: allows to specify the build in which the results will be pushed
16
+ - `--build-name`: allows to name the build which will be created to store the results
17
+
18
+ ## [3.0.0]
19
+
20
+ - Add `--overriden-language-configs` command line option (#205 by tenpaiyomi)
21
+ - Add support for Cucumber Expression in Java and Groovy (#205 by tenpaiyomi)
22
+ - Fix possible duplication of actionwords in export (#232 by tenpaiyomi)
23
+ - Breaking change: Export with cucumber expressions are now the default when specifying `--language=cucumber` for TypeScript, Java, and GroovySet. Use `--language=cucumber_legacy` to keep previous export behavior (#205 by tenpaiyomi) (#205 by tenpaiyomi)
24
+ - Breaking change: Drop support for ruby 2.3 and ruby 2.4 as they have reached end of life
25
+ - Rename HipTest as CucumberStudio in user messages
26
+ - Properly escape new lines in datatables (#109)
27
+
28
+ ## [2.4.0]
29
+
30
+ - Add support for asynchronous export of projects from Cucumber Studio
31
+
32
+ ## [2.3.1]
33
+
34
+ - `--indentation` option is now available to customize the indentation of the output
35
+
36
+ ## [2.3.0]
37
+
38
+ - No test uids in datatables by default for feature files, add them when test run is used (#201)
39
+
40
+ ## [2.2.0]
41
+
42
+ - Add support for Cucumber expressions w/ Typescript ([#173](https://github.com/hiptest/hiptest-publisher/pull/173) [#184](https://github.com/hiptest/hiptest-publisher/pull/184) [tenpaiyomi])
43
+
44
+ ## [2.1.0]
45
+
46
+ - Do not try to colorize output when not in a `tty`
47
+
48
+ - Add `--[no-]color` option to allow disabling colored output
49
+
50
+ ## [2.0.0]
51
+
52
+ - Deprecate support for Ruby 2.3 ([Ruby 2.3 EOL](https://www.ruby-lang.org/en/news/2019/03/31/support-of-ruby-2-3-has-ended/))
53
+
54
+ - Drop Ruby 2.2 support.
55
+
56
+ - Update Nokogiri to 1.10
57
+
58
+ ## [1.31.0]
59
+
60
+ - Follow redirections when doing HTTP requests.
61
+
62
+ ## [1.30.0]
63
+
64
+ - Upgrade `ruby-handlebars` to 0.4. `each` and `join` helpers now support the `as` notation.
65
+
66
+ - Add support for Swift/XCTest ([#134](https://github.com/hiptest/hiptest-publisher/pull/134) [bangroot])
67
+
68
+ - Add cache for the XML downloaded from CucumberStudio.
69
+ By default, files will be valid for 60 seconds but can be changed by using `--cache-duration=120` for example.
70
+
71
+ ## [1.29.2]
72
+
73
+ - Fix escaping in string literals for Java and C# ([#157](https://github.com/hiptest/hiptest-publisher/issues/157) - [hiptest#195](https://github.com/hiptest/hiptest-issue-tracker/issues/195))
74
+
75
+ ## [1.29.1]
76
+
77
+ - Allow any characters for the meta value ([#155](https://github.com/hiptest/hiptest-publisher/issues/155))
78
+
79
+ ## [1.29.0]
80
+
81
+ - Make `rake install` work with ruby 2.6
82
+ - `--parameter-delimiter` option now accepts empty string
83
+
84
+ ## [1.28.0]
85
+
86
+ - Fix bug where parameter-delimiter value was not recognized in command line ([#147](https://github.com/hiptest/hiptest-publisher/issues/147))
87
+ - Add option --http-proxy to specify proxy to use ([#132](https://github.com/hiptest/hiptest-publisher/issues/132))
88
+
89
+ ## [1.27.1]
90
+
91
+ - Add CodeceptJS to language list in OptionsParser.languages
92
+
93
+ ## [1.27.0]
94
+
95
+ - Enable accessing scenario tags in datasets
96
+ ([#142](https://github.com/hiptest/hiptest-publisher/pull/142) [nono0481])
97
+
98
+ - Added support for CodeceptJS testing framework
99
+ ([#130](https://github.com/hiptest/hiptest-publisher/pull/130) [DavertMik])
100
+
101
+ ## [1.26.0]
102
+
103
+ - Shared actionwords handling for Cucumber/Typescript
104
+
105
+ ## [1.25.0]
106
+
107
+ - Shared actionwords handling for Behave
108
+
109
+ ## [1.24.0]
110
+
111
+ - Add #case, #when and #when_includes handlebars helpers
112
+ - Modify #if_includes handlebars helper to work with strings
113
+
114
+ ## [1.23.5]
115
+
116
+ - Load i18n path also when used as a library
117
+
118
+ ## [1.23.4]
119
+
120
+ - Add I18n to enable localizing (and clearing the code)
121
+
122
+ ## [1.23.3]
123
+
124
+ - Update multipart-post to 2.1.1 to handle issues with Ruby < 2.5
125
+ (see: https://github.com/socketry/multipart-post/issues/61)
126
+
127
+ ## [1.23.2]
128
+
129
+ - Force Nokogiri < 1.10 to keep support for Ruby 2.2
130
+ - Add deprecation notifications for Ruby 2.2
131
+
132
+ ## [1.23.1]
133
+
134
+ - Handle new shared actionword architecture
135
+
136
+ ## [1.22.0]
137
+
138
+ - Add support for Cucumber/Typescript
139
+ - Unlock Nokogiri update to 1.9.1
140
+
141
+ ## [1.21.0]
142
+
143
+ - Add option --execution-environment to push results in the specified execution environment name
144
+
145
+ ## [1.20.0]
146
+
147
+ - Add --meta option to add more flexibility in code generation
148
+ (see: https://github.com/hiptest/hiptest-publisher/blob/master/docs/Using%20meta%20data.md#using-meta-data)
149
+
150
+ ## [1.19.3]
151
+
152
+ - Do not leave trailing whitespaces with {{comment}} helper
153
+
154
+ ## [1.19.2]
155
+
156
+ - Fix description in Gherkin exports
157
+
158
+ ## [1.19.1]
159
+
160
+ - Fix description in Gherkin exports
161
+
162
+ ## [1.19.0]
163
+
164
+ - Do not comment description in Gherkin exports
165
+
166
+ ## [1.18.1]
167
+
168
+ - Show message when calling an actionword using an unknown UID
169
+
170
+ ## [1.18.0]
171
+
172
+ - Add option [no-]parent-folders-tags to choose if parent tags are rendered in feature files
173
+
174
+ ## [1.17.2]
175
+
176
+ - Fix UIDCall handling for shared actionwords
177
+
178
+ ## [1.17.1]
179
+
180
+ - update version number
181
+
182
+ ## [1.16.6]
183
+
184
+ - Add the if_includes handlebars helper
185
+ - Add options "parameter-delimiter" allowing to remove quotes around parameters in Gherkin export
186
+ (or replace it by anything else in fact)
187
+
188
+ ## [1.16.5]
189
+
190
+ - Fix UIDCall handling for behat
191
+
192
+ ## [1.16.4]
193
+
194
+ - Handling tags for shared actionwords
195
+
196
+ ## [1.16.3]
197
+
198
+ - Fix behat rendering of shared actionwords
199
+
200
+ ## [1.16.2]
201
+
202
+ - Remove unnecessary templates for cucumber/groovy
203
+
204
+ ## [1.16.0]
205
+
206
+ - Shared actionwords handling for behat
207
+
208
+ ## [1.15.0]
209
+
210
+ - Shared actionwords handling for groovy/spock
211
+
212
+ ## [1.14.0]
213
+
214
+ - Shared actionwords handling for cucumber/groovy
215
+
216
+ ## [1.13.0]
217
+
218
+ - Add Cucumber/Groovy support
219
+ ([#54](https://github.com/hiptest/hiptest-publisher/issues/54))
220
+
221
+ ## [1.12.0]
222
+
223
+ - Add JBehave support
224
+ ([#38](https://github.com/hiptest/hiptest-publisher/issues/38))
225
+
226
+ - Add option --with-dataset-names
227
+ ([#105](https://github.com/hiptest/hiptest-publisher/issues/105))
228
+
229
+ - Reorder steps by regexp length for Behave
230
+ ([#104](https://github.com/hiptest/hiptest-publisher/issues/104))
231
+
232
+ <!-- List of releases -->
233
+
234
+ [Unreleased]: https://github.com/hiptest/hiptest-publisher/compare/v3.1.0...master
235
+ [3.1.0]: https://github.com/hiptest/hiptest-publisher/compare/v3.0.0...v3.1.0
236
+ [3.0.0]: https://github.com/hiptest/hiptest-publisher/compare/v2.4.0...v3.0.0
237
+ [2.4.0]: https://github.com/hiptest/hiptest-publisher/compare/v2.3.1...v2.4.0
238
+ [2.3.1]: https://github.com/hiptest/hiptest-publisher/compare/v2.3.0...v2.3.1
239
+ [2.3.0]: https://github.com/hiptest/hiptest-publisher/compare/v2.2.0...v2.3.0
240
+ [2.2.0]: https://github.com/hiptest/hiptest-publisher/compare/v2.1.0...v2.2.0
241
+ [2.1.0]: https://github.com/hiptest/hiptest-publisher/compare/v2.0.0...v2.1.0
242
+ [2.0.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.31.0...v2.0.0
243
+ [1.31.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.30.0...v1.31.0
244
+ [1.30.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.29.2...v1.30.0
245
+ [1.29.2]: https://github.com/hiptest/hiptest-publisher/compare/v1.29.1...v1.29.2
246
+ [1.29.1]: https://github.com/hiptest/hiptest-publisher/compare/v1.29.0...v1.29.1
247
+ [1.29.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.28.0...v1.29.0
248
+ [1.28.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.27.1...v1.28.0
249
+ [1.27.1]: https://github.com/hiptest/hiptest-publisher/compare/v1.27.0...v1.27.1
250
+ [1.27.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.26.0...v1.27.0
251
+ [1.26.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.25.0...v1.26.0
252
+ [1.25.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.24.0...v1.25.0
253
+ [1.24.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.23.5...v1.24.0
254
+ [1.23.5]: https://github.com/hiptest/hiptest-publisher/compare/v1.23.4...v1.23.5
255
+ [1.23.4]: https://github.com/hiptest/hiptest-publisher/compare/v1.23.3...v1.23.4
256
+ [1.23.3]: https://github.com/hiptest/hiptest-publisher/compare/v1.23.2...v1.23.3
257
+ [1.23.2]: https://github.com/hiptest/hiptest-publisher/compare/v1.23.1...v1.23.2
258
+ [1.23.1]: https://github.com/hiptest/hiptest-publisher/compare/v1.22.0...v1.23.1
259
+ [1.22.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.21.0...v1.22.0
260
+ [1.21.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.20.0...v1.21.0
261
+ [1.20.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.19.3...v1.20.0
262
+ [1.19.3]: https://github.com/hiptest/hiptest-publisher/compare/v1.19.2...v1.19.3
263
+ [1.19.2]: https://github.com/hiptest/hiptest-publisher/compare/v1.19.1...v1.19.2
264
+ [1.19.1]: https://github.com/hiptest/hiptest-publisher/compare/v1.19.0...v1.19.1
265
+ [1.19.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.18.1...v1.19.0
266
+ [1.18.1]: https://github.com/hiptest/hiptest-publisher/compare/v1.18.0...v1.18.1
267
+ [1.18.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.17.2...v1.18.0
268
+ [1.17.2]: https://github.com/hiptest/hiptest-publisher/compare/v1.17.1...v1.17.2
269
+ [1.17.1]: https://github.com/hiptest/hiptest-publisher/compare/v1.16.6...v1.17.1
270
+ [1.16.6]: https://github.com/hiptest/hiptest-publisher/compare/v1.16.5...v1.16.6
271
+ [1.16.5]: https://github.com/hiptest/hiptest-publisher/compare/v1.16.4...v1.16.5
272
+ [1.16.4]: https://github.com/hiptest/hiptest-publisher/compare/v1.16.3...v1.16.4
273
+ [1.16.3]: https://github.com/hiptest/hiptest-publisher/compare/v1.16.2...v1.16.3
274
+ [1.16.2]: https://github.com/hiptest/hiptest-publisher/compare/v1.16.0...v1.16.2
275
+ [1.16.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.15.0...v1.16.0
276
+ [1.15.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.14.0...v1.15.0
277
+ [1.14.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.13.0...v1.14.0
278
+ [1.13.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.12.0...v1.13.0
279
+ [1.12.0]: https://github.com/hiptest/hiptest-publisher/compare/v1.11.1...v1.12.0
280
+
281
+ <!-- List of contributors -->
282
+
283
+ [atulhm]: https://github.com/atulhm
284
+ [bangroot]: https://github.com/bangroot
285
+ [ClaudiaJ]: https://github.com/ClaudiaJ
286
+ [daniel-kun]: https://github.com/daniel-kun
287
+ [DavertMik]: https://github.com/DavertMik
288
+ [etorreborre]: https://github.com/etorreborre
289
+ [Jesterovskiy]: https://github.com/Jesterovskiy
290
+ [lostiniceland]: https://github.com/lostiniceland
291
+ [mhfrantz]: https://github.com/mhfrantz
292
+ [nono0481]: https://github.com/nono0481
293
+ [tenpaiyomi]: https://github.com/tenpaiyomi
294
+ [tikolakin]: https://github.com/tikolakin
295
+ [weeksghost]: https://github.com/weeksghost
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) SmartBear Software Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,265 @@
1
+ HipTest Publisher
2
+ ==============
3
+
4
+ [![GitHub Actions status](https://github.com/hiptest/hiptest-publisher/workflows/Tests/badge.svg)](https://github.com/hiptest/hiptest-publisher/actions?query=workflow%3ATests)
5
+ [![Gem Version](https://badge.fury.io/rb/hiptest-publisher.svg)](http://badge.fury.io/rb/hiptest-publisher)
6
+ [![Code Climate](https://codeclimate.com/github/hiptest/hiptest-publisher/badges/gpa.svg)](https://codeclimate.com/github/hiptest/hiptest-publisher)
7
+ [![Test Coverage](https://codeclimate.com/github/hiptest/hiptest-publisher/badges/coverage.svg)](https://codeclimate.com/github/hiptest/hiptest-publisher)
8
+
9
+
10
+ hiptest-publisher is a tool to read Test Management projects from CucumberStudio (formerly know as HipTest) and publish them as executable test scripts stubs to start automating.
11
+
12
+ Installing
13
+ ----------
14
+
15
+ ### Using docker image
16
+
17
+ A docker image of hiptest-publisher is built automatically and is available on
18
+ [Docker Hub](https://hub.docker.com/r/hiptest/hiptest-publisher/)
19
+
20
+ To call hiptest-publisher using this image, run this command:
21
+ ```
22
+ docker run -it --rm -u $UID -v $(pwd):/app hiptest/hiptest-publisher <arguments>
23
+ ```
24
+
25
+ A wrapper script is provided in
26
+ [`bin/hiptest-publisher-docker`](https://raw.githubusercontent.com/hiptest/hiptest-publisher/master/bin/hiptest-publisher-docker).
27
+ To use it:
28
+ 1. copy `bin/hiptest-publisher-docker` to a location available in your `PATH`
29
+ like `~/bin` or `/usr/local/bin`
30
+ 2. rename it as `hiptest-publisher`
31
+ 3. make it executable with `chmod +x hiptest-publisher`
32
+
33
+ You will then be able to use hiptest-publisher as if it was locally installed.
34
+
35
+ ### Using local installation
36
+
37
+ You need to have [Ruby installed on your machine](https://www.ruby-lang.org/en/installation/). You can then install it using gem:
38
+
39
+ ```shell
40
+ gem install hiptest-publisher
41
+ ```
42
+
43
+ Note: for Windows users, take a look at [this Windows installation guide](docs/INSTALLING/Windows.md).
44
+
45
+ Exporting a project
46
+ -------------------
47
+
48
+ Go to [CucumberStudio projects list](https://studio.cucumber.io/projects), pick one project, and select the Settings tab.
49
+ This tab is available only for projects you're admin of.
50
+ From there, copy the secret token and run this command line:
51
+
52
+ ```shell
53
+ hiptest-publisher --token=<YOUR TOKEN>
54
+ ```
55
+
56
+ This will create a Ruby tests suite. For the moment, we support the following languages and frameworks:
57
+
58
+ - Behat
59
+ - Behave
60
+ - CSharp (NUnit)
61
+ - Cucumber (Groovy / Java / Javascript / Ruby / TypeScript)
62
+ - Cucumber Legacy (Groovy / Java / TypeScript) (previous Cucumber versions)
63
+ - Groovy (Spock)
64
+ - Java (Espresso / JUnit / TestNg)
65
+ - JavaScript (CodeceptJS / Jasmine / Mocha / Protractor / QUnit)
66
+ - JBehave
67
+ - PHP (PHPUnit)
68
+ - Python (UnitTest)
69
+ - Robot Framework
70
+ - Ruby (MiniTest / RSpec)
71
+ - Selenium IDE
72
+ - SpecFlow
73
+ - Swift (XCTest)
74
+
75
+ You can specify the output language and framework in the command line, for example:
76
+
77
+ ```shell
78
+ hiptest-publisher --token=<YOUR TOKEN> --language=ruby --framework=minitest
79
+ ```
80
+
81
+ When publishing, you'll notice a file called ``actionwords_signature.yaml``. Store this file in your code repository, it will be used to [handle updates of the action word](docs/upgrading_actionwords.md).
82
+
83
+ Exporting a test run
84
+ --------------------
85
+
86
+ You can generate the test suite from a test run of your project by specifying option `--test-run-id=<xxx>` when calling `hiptest-publisher`. You can find the test run id in the address bar of your browser. If your browser address is `https://studio.cucumber.io/projects/1234/testRuns/6941`, then your test run id is `6941`. You can generate your tests from your test with this command line:
87
+
88
+ ```shell
89
+ hiptest-publisher --token=<YOUR TOKEN> --test-run-id=6941
90
+ ```
91
+
92
+ Available options
93
+ -----------------
94
+
95
+ For more information on the available options, use the following command:
96
+
97
+ ```shell
98
+ hiptest-publisher --help
99
+ ```
100
+
101
+ You could obtain for example:
102
+
103
+ ```shell
104
+ Exports tests from CucumberStudio for automation.
105
+
106
+ Specific options:
107
+ -t, --token=TOKEN Secret token (available in your project settings)
108
+ -l, --language=LANG Target language (default: ruby)
109
+ -f, --framework=FRAMEWORK Test framework to use
110
+ -o, --output-directory=PATH Output directory (default: .)
111
+ --filename-pattern=PATTERN Filename pattern (containing %s)
112
+ -c, --config-file=PATH Configuration file
113
+ --overriden-templates=PATH Folder for overriden templates
114
+ --overriden-language-configs=PATH
115
+ Folder for overriden language configs
116
+ --test-run-id=ID Export data from a test run identified by its id
117
+ --test-run-name=NAME Export data from a test run identified by its name
118
+ --only=CATEGORIES Restrict export to given file categories (--only=list to list them)
119
+ --without=CATEGORIES Exclude file categories from import (--only=list to list them)
120
+ -x, --xml-file=PROJECT_XML XML file to use instead of fetching it from CucumberStudio
121
+ --tests-only (deprecated) alias for --only=tests (default: false)
122
+ --actionwords-only (deprecated) alias for --only=actionwords (default: false)
123
+ --actionwords-signature Export actionwords signature (default: false)
124
+ --show-actionwords-diff Show actionwords diff since last update (summary) (default: false)
125
+ --show-actionwords-diff-as-json
126
+ Show actionwords diff since last update (JSON output) (default: false)
127
+ --show-actionwords-deleted Output signature of deleted action words (default: false)
128
+ --show-actionwords-created Output code for new action words (default: false)
129
+ --show-actionwords-renamed Output signatures of renamed action words (default: false)
130
+ --show-actionwords-signature-changed
131
+ Output signatures of action words for which signature changed (default: false)
132
+ --show-actionwords-definition-changed
133
+ Output action words for which definition changed (default: false)
134
+ --library-name=LIBRARY_NAME Use in conjunction with show-actionwords-*: show the diff for the specified library
135
+ --with-folders Use folders hierarchy to export files in respective directories (default: false)
136
+ --empty-folders Export empty folders (default: false)
137
+ --split-scenarios Export each scenario in a single file (except for Gherkin based languages) (default: false)
138
+ --leafless-export Use only last level action word (default: false)
139
+ -s, --site=SITE Site to fetch from (default: https://studio.cucumber.io)
140
+ -p, --push=FILE.TAP Push a results file to the server
141
+ --global-failure-on-missing-reports
142
+ When there is no results file to push, report a global failure (default: false)
143
+ --push-format=tap Format of the test results (cucumber-json, junit, nunit, robot, tap) (default: tap)
144
+ --execution-environment=NAME Name of the execution environment
145
+ --build-id=ID ID of an existing build the results will be added to
146
+ --build-name=NAME Name for the build that will be created in CucumberStudio (build names are not unique)
147
+ --sort=[id,order,alpha] Sorting of tests in output: id will sort them by age, order will keep the same order than in hiptest (only with --with-folders option, will fallback to id otherwise), alpha will sort them by name (default: order)
148
+ --[no-]uids Export UIDs (note: can be disabled only for Gherkin-based exports, may cause issue when pushing results back) (default: true)
149
+ --[no-]parent-folder-tags Export tags from parent folders (note: if set to false, those tags are never rendered. Only available for Gherkin base exports) (default: true)
150
+ --parameter-delimiter Parameter delimiter (for Gherkin based export only) (default: "")
151
+ --with-dataset-names Export dataset name when creating feature files (note: available only for Gherkin-based exports) (default: false)
152
+ --keep-filenames Keep the same name as in CucumberStudio for the test files (note: may cause encoding issues) (default: false)
153
+ --keep-foldernames Keep the same name as in CucumberStudio for the folders (note: may cause encoding issues) (default: false)
154
+ --filter-on-scenario-ids=IDS Filter on scenario ids (use commas to separate ids when fetching multiple scenarios)
155
+ --filter-on-folder-ids=IDS Filter on folder ids (use commas to separate ids when fetching multiple folders)
156
+ --filter-on-scenario-name=NAME
157
+ Filter on scenario name (only one name is accepted)
158
+ --filter-on-folder-name=NAME Filter on folder name (only one name is accepted)
159
+ --filter-on-tags=TAGS Filter on scenarios and folder tags (use commas to separate tags when using multiple tags)
160
+ --filter-on-status=STATUS Filter on test status in last build (use in conjunction with a test run)
161
+ --not-recursive Used in conjunction with filter-on-folder-ids or filter-on-folder-name: only exports those folders, not their children (default: false)
162
+ --check-version Check if a new release of hiptest-publisher is available (default: false)
163
+ --force Force overwrite of existing files (do not apply to test files) (default: false)
164
+ --[no-]color Force [un]use of ANSI color in text output
165
+ -v, --verbose Run verbosely (default: false)
166
+ -H, --languages-help Show languages and framework options
167
+ -h, --help Show this message
168
+ ```
169
+
170
+ Configuration
171
+ -------------
172
+
173
+ You have the possibility to store some configuration in a file named 'config'. Copy the file config.sample provided here and update the values with the values you use.
174
+
175
+ If you have multiple projects, you can have multiple config files and select one using the --config-file option:
176
+
177
+ ```shell
178
+ # Use the default config file
179
+ hiptest-publisher
180
+ # Use the one to export as minitest
181
+ hiptest-publisher --config-file=config_minitest
182
+ ```
183
+
184
+ For example, for java you can use this config file content:
185
+
186
+ ```
187
+ token = '<YOUR TOKEN>'
188
+ language = 'java'
189
+ output_directory = '<YOUR OUTPUT DIRECTORY>'
190
+ package = 'com.youcompany'
191
+ ```
192
+
193
+ Note that options from command line arguments override options from config file.
194
+
195
+ If you want to override one of the existing configurations, you can use the --overriden-language-configs option to specify a path that is checked for configuration files prior to looking at the default configuration files. If one is found, it will use that file instead of the default, otherwise it will use the default configuration for the specified language.
196
+
197
+ ### Using hiptest-publisher behind a http proxy
198
+
199
+ To use hiptest-publisher behind a http proxy, set an environment variable named http_proxy
200
+ ```
201
+ http_proxy=http://<proxy_host>:<proxy_port>
202
+ ```
203
+ If username and password are required:
204
+ ```
205
+ http_proxy=http://<username>:<password>@<proxy_host>:<proxy_port>
206
+ ```
207
+
208
+ Posting results to CucumberStudio
209
+ ---------------------------------
210
+
211
+ You can use the option `--push` to push the results back to CucumberStudio. For this, you first need to generate the test code from a Test Run by specifying option `--test-run-id=<xxx>` during code generation (or add it to the configuration file).
212
+
213
+ The tests must then generate a test report that is supported by CucumberStudio. Currently four types of test results are handled:
214
+ - Cucumber JSON format
215
+ - jUnit XML format
216
+ - [NUnit XML v2 format](https://github.com/nunit/docs/wiki/XML-Formats#v2-test-results)
217
+ - Robot framework XML output
218
+ - [TAP (Test Anything Protocol)](https://testanything.org/)
219
+
220
+ You can specify the type of export when pushing by using the option `--push-format=[cucumber-json|junit|nunit|robot|tap]` or specifying it in the config file.
221
+
222
+ You can push multiple files at once (using wildcard) but in that case, do not forget to add quotes. For examples:
223
+
224
+ hiptest-publisher --config-file=<path to your config file> --push="reports/*.xml"
225
+
226
+ The number of imported test results will be displayed. For debugging purposes, you can display imported tests individually with the `--verbose` option.
227
+
228
+ Development
229
+ -----------
230
+
231
+ While developing, you can install the gem locally by issuing
232
+
233
+ ```
234
+ bundle exec rake install
235
+ ```
236
+
237
+ You can also run the command directly with `bundle exec ruby -I lib bin/hiptest-publisher`. It is handy to define an alias so you can test your code easily:
238
+
239
+ ```
240
+ # this alias will only work when run from the root of the project
241
+ alias hiptest-publisher='bundle exec ruby -I lib bin/hiptest-publisher'
242
+ ```
243
+
244
+
245
+ Internationalization
246
+ --------------------
247
+
248
+ To help with internationalization, you can temporarly add the `i18n-tasks` in the Gemfile and run `i18n-tasks health` to check that everything is ok and there are no missing translations. We removed it because of the many dependencies it pulls.
249
+
250
+ Other useful commands:
251
+ * `i18n-tasks missing`
252
+ * `i18n-tasks unused`
253
+ * `i18n-tasks normalize`
254
+ * `i18n-tasks check-consistent-interpolations`
255
+
256
+
257
+ Adding support for other languages and framework
258
+ ------------------------------------------------
259
+
260
+ See the [CONTRIBUTING](https://github.com/hiptest/hiptest-publisher/blob/master/docs/CONTRIBUTING.md) help page for more information.
261
+
262
+ Contributors
263
+ ------------
264
+
265
+ The [@hiptest team](https://github.com/hiptest), [@mhfrantz](https://github.com/@mhfrantz), [@tikolakin](https://github.com/@tikolakin), [@atulhm](https://github.com/@atulhm), [@etorreborre](https://github.com/@etorreborre), [@daniel-kun](https://github.com/@daniel-kun), [@weeksghost](https://github.com/@weeksghost), [@lostiniceland](https://github.com/@lostiniceland), [@ClaudiaJ](https://github.com/@ClaudiaJ), [@Jesterovskiy](https://github.com/@Jesterovskiy), [@tenpaiyomi](https://github.com/@tenpaiyomi), [nono0481](https://github.com/nono0481), [DavertMik](https://github.com/DavertMik)
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Don't try to run this binary directly. Instead:
4
+ #
5
+ # * `hiptest-publisher` if installed through rubygems, relying on the rubygem
6
+ # wrapper
7
+ #
8
+ # * `bundle exec ruby -I lib bin/hiptest-publisher` if doing hiptest-publisher
9
+ # development. You can define an alias for this command and run it as if
10
+ # you were running the gem natively.
11
+ #
12
+ # alias hiptest-publisher='bundle exec ruby -I lib bin/hiptest-publisher'
13
+ #
14
+
15
+ require 'ruby_version'
16
+ require 'hiptest-publisher/i18n'
17
+ require 'hiptest-publisher/utils'
18
+
19
+ # Ensure ruby version >= 2.7
20
+ if RubyVersion < '2.7.0'
21
+ STDERR.puts(I18n.t('ruby_version.required_version', version: '2.7.0'))
22
+ STDERR.puts(I18n.t('ruby_version.current_version', engine: RUBY_ENGINE, version: RUBY_VERSION))
23
+ STDERR.puts(I18n.t('ruby_version.use_more_recent'))
24
+
25
+ if RubyVersion.is? 2.6
26
+ STDERR.puts(I18n.('ruby_version.support_ended', version: '2.6.0', year: '2022', month: '03', day: '31'))
27
+ elsif RubyVersion.is? 2.5
28
+ STDERR.puts(I18n.('ruby_version.support_ended', version: '2.5.0', year: '2021', month: '03', day: '31'))
29
+ elsif RubyVersion.is? 2.4
30
+ STDERR.puts(I18n.('ruby_version.support_ended', version: '2.4.0', year: '2020', month: '03', day: '31'))
31
+ end
32
+ exit 1
33
+ end
34
+
35
+ if RubyVersion < '3.0'
36
+ STDERR.puts(I18n.t('ruby_version.current_version', engine: RUBY_ENGINE, version: RUBY_VERSION))
37
+ STDERR.puts(I18n.t('ruby_version.deprecation_warning', version: '2.7'))
38
+ STDERR.puts(I18n.t('ruby_version.support_ended', version: '2.7', year: '2023', month: '03', day: '31'))
39
+ end
40
+
41
+ require 'hiptest-publisher'
42
+ begin
43
+ require 'pry' # only available in development
44
+ rescue StandardError, LoadError
45
+ end
46
+
47
+ Hiptest::Publisher.new(ARGV).run