Rails 6.0.4系统测试在Travis CI运行失败无错误输出如何排查?
Rails 6系统测试Travis CI无错误输出排查思路
- 调高测试日志输出级别
执行测试时添加verbose参数并指定日志级别,强制输出所有执行细节:
同时可以在RAILS_LOG_LEVEL=debug bundle exec rails test:system -vconfig/environments/test.rb中添加配置,将测试日志直接输出到标准输出:config.logger = Logger.new(STDOUT) config.log_level = :debug - 调整命令输出重定向规则
将标准错误流合并到标准输出,避免错误信息被单独丢弃:bundle exec rails test:system -v 2>&1 - 检查无头浏览器配置与依赖
CI环境运行系统测试需要配置无界面浏览器,首先确认你的test/application_system_test_case.rb中已针对CI环境添加无头启动参数:
其次在driven_by :selenium, using: :chrome, screen_size: [1400, 1400] do |driver_option| driver_option.add_argument '--no-sandbox' driver_option.add_argument '--headless' driver_option.add_argument '--disable-gpu' driver_option.add_argument '--disable-dev-shm-usage' end.travis.yml的addons.apt.packages中添加浏览器依赖:packages: - mysql-server - chromium-browser - chromium-chromedriver - 临时屏蔽覆盖率工具验证
先将.travis.yml中COVERAGE环境变量改为false,注释掉CodeClimate相关的before_script和after_script逻辑,排除覆盖率工具拦截错误输出的可能性。 - 缩小测试执行范围排查
不要执行全量系统测试,先指定单个最简测试用例执行,更容易定位错误:bundle exec rails test test/system/your_simplest_test.rb -v - 检查Puma运行权限与日志配置
确认你创建的/var/log/puma目录已正确授权,同时可以在config/puma.rb的test环境配置中添加日志输出规则,将Puma的运行日志也输出到控制台。
内容的提问来源于stack exchange,提问作者Francesco Mari
相关产品推荐
相关产品推荐

