e2e testing made eas(y/ier)
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

63 wiersze
1.3KB

  1. #!/usr/bin/ruby
  2. require 'watir'
  3. require 'watir-scroll'
  4. require 'zeitwerk'
  5. loader = Zeitwerk::Loader.new
  6. loader.push_dir __dir__
  7. loader.setup
  8. # @brief main
  9. #
  10. # @param argv: Array
  11. # @param argc: Integer
  12. #
  13. # @return ?
  14. # @since 0.1
  15. #
  16. # @todo let the developer provide the list of tests that are ran
  17. def main argv = [], argc
  18. if argv.include? '--server'
  19. Server.run!
  20. return false
  21. end
  22. Thread.new {
  23. Server.run!
  24. }
  25. Thread.new {
  26. Fx::pipe({ headless: ARGV.first != 'visible',
  27. options: {
  28. args: [ 'start-fullscreen' ]
  29. }
  30. },
  31. -> (opts) {
  32. Watir::Browser.new :chrome,
  33. opts
  34. },
  35. -> (b) {
  36. Watir.default_timeout = 10
  37. b.window.resize_to 1366, 768
  38. [
  39. Tests::ProjectNameHere::Basic
  40. ].each do |c|
  41. c.methods(false).sort.each do |m|
  42. if "assert" != m[0..5]
  43. next
  44. end
  45. Fx::perform c.method(m), b, "#{c}::#{m}"
  46. end
  47. end
  48. Server.stop!
  49. })
  50. }.join
  51. end
  52. main ARGV, ARGV.count