Аруба с rspec, тесты не пройдены, потому что фактический вывод пуст.Там нет ошибки.Какие могут быть причины? - PullRequest
0 голосов
/ 15 октября 2018

Мой проект - это инструмент командной строки, написанный на python.Код тестирования спецификаций написан с использованием aruba и rspec.

Приложение запускается bin / project, при запуске из проекта dir оно функционирует правильно, каждый заданный ввод имеет текстовый вывод.

Но когдаЯ запускаю тест спецификации, тесты не пройдены, потому что aruba получает "" для всех входов.Я попытался проверить с помощью command.stderr, ошибки тоже нет.

По каким причинам aruba может получить пустой вывод?

Моя структура каталогов:

- project
    - functional_spec
        -rakefile
        -spec
             -tests.rb
    - bin
        - project.sh
        - run_functional_test.sh
    - app
        - app.py
        - __main__.py

Я запускаю bin/run_functional_test из каталога проекта и не получаю никаких выходных данных от запускаемых команд.

Содержимое rakefile:

require "rspec/core/rake_task"

namespace :spec do
  desc "Run the functional suite against the CLI"
  RSpec::Core::RakeTask.new(:functional, [] => [:set_path])

  task :set_path do
    project_bin_dir = File.join(File.dirname(File.expand_path(__FILE__)), '..', 'bin')
    ENV['PATH'] = project_bin_dir + ':'+ ENV['PATH']
  end
end

Содержимое run_functional_test:

#!/usr/bin/env ruby

project_bin_dir = File.join(File.dirname(File.expand_path(__FILE__)))
functional_spec_dir = File.join(project_bin_dir, '..', 'functional_spec')
cmd = "cd #{functional_spec_dir}; bundle install; bundle exec rake spec:functional"
puts cmd
system cmd

Один из неудачных тестов:

RSpec.describe 'Test Case', type: :aruba do
  let(:command) { run "start_cli" }
  before(:each) { command.write("sample_input_command") }

  it "sample_input_command runs well" do
    stop_all_commands
    expect(command.output).to end_with("sample output")
  end
...