Class: Liri::Common::UnitTest::Rspec
- Inherits:
-
Object
- Object
- Liri::Common::UnitTest::Rspec
- Defined in:
- lib/common/unit_test/rspec.rb
Constant Summary collapse
- TESTS_FOLDER_NAME =
'spec'
Instance Attribute Summary collapse
-
#tests_folder_path ⇒ Object
readonly
Returns the value of attribute tests_folder_path.
Instance Method Summary collapse
-
#all_tests ⇒ Object
Retorna un hash con todos los tests.
-
#initialize(source_code_folder_path) ⇒ Rspec
constructor
A new instance of Rspec.
-
#run_tests(tests) ⇒ Object
Recibe un arreglo de rutas a las pruebas unitarias Ejecuta las pruebas unitarias y retorna el resultado como un hash.
Constructor Details
#initialize(source_code_folder_path) ⇒ Rspec
Returns a new instance of Rspec.
8 9 10 11 |
# File 'lib/common/unit_test/rspec.rb', line 8 def initialize(source_code_folder_path) @source_code_folder_path = source_code_folder_path @tests_folder_path = File.join(source_code_folder_path, TESTS_FOLDER_NAME) end |
Instance Attribute Details
#tests_folder_path ⇒ Object (readonly)
Returns the value of attribute tests_folder_path.
6 7 8 |
# File 'lib/common/unit_test/rspec.rb', line 6 def tests_folder_path @tests_folder_path end |
Instance Method Details
#all_tests ⇒ Object
Retorna un hash con todos los tests. Ex.: 2=>“spec/hash_spec.rb:13”, 3=>“spec/hash_spec.rb:24”, …, 29=>“spec/liri_spec.rb:62”
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/common/unit_test/rspec.rb', line 14 def all_tests tests_count = 1 tests_hash = {} sorted_test_files = test_files.sort sorted_test_files.each do |test_file| tests_hash[tests_count] = test_file.sub(@source_code_folder_path + '/', '') tests_count += 1 end tests_hash end |
#run_tests(tests) ⇒ Object
Recibe un arreglo de rutas a las pruebas unitarias Ejecuta las pruebas unitarias y retorna el resultado como un hash
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/common/unit_test/rspec.rb', line 27 def run_tests(tests) # Se puede ejecutar comandos en líneas de comandos usando system(cli_command) o %x|cli_command| # system devuelve true, false o nil, %x devuelve la salida del comando ejecutado # From: # https://www.rubyguides.com/2018/12/ruby-system/ #system("bundle exec rspec #{tests_paths} --format progress --out rspec_result.txt --no-color") # El comando chdir hace que el directorio de trabajo se mueva a la carpeta en donde se descomprimió el código fuente para poder ejecutar las pruebas Dir.chdir(@source_code_folder_path) do # Descomentar para la depuración en entorno de desarrollo (Creo que aún así no se puede depurar) # raw_tests_result = %x|bundle exec rspec #{tests.join(' ')} --format progress| # Descomentar para el entorno de producción raw_tests_result = '' Liri::Common::Benchmarking.start(start_msg: "Running tests batch. Wait... ") do raw_tests_result = %x|bash -lc 'rvm use #{Liri.current_folder_ruby_and_gemset}; rspec #{tests.join(' ')}'| end return raw_tests_result end end |