【发布时间】:2020-02-25 12:14:50
【问题描述】:
此错误在运行rails test 后的测试(标准 Rails 测试工具包)期间随机发生。失败的测试可以是任何文件中的任何测试。
此错误通常发生在 CI/CD 过程中的测试环境中。在本地很少发生。
这是完整的堆栈跟踪:
Error:
SitePositionsControllerTest#test_should_create_position_link:
ActionView::Template::Error: 785: unexpected token at ''
app/views/layouts/site/application.html.erb:10
test/controllers/site_positions_controller_test.rb:28:in `block (2 levels) in <class:SitePositionsControllerTest>'
test/controllers/site_positions_controller_test.rb:27:in `block in <class:SitePositionsControllerTest>'
test/test_helper.rb:64:in `block (3 levels) in run'
test/test_helper.rb:63:in `block (2 levels) in run'
test/test_helper.rb:62:in `block in run'
test/test_helper.rb:54:in `run'
rails test test/controllers/site_positions_controller_test.rb:18
【问题讨论】:
-
我以前也遇到过,其实你的代码没有问题。您可以删除该测试部分。
-
大多数时候我得到的错误与 json 解析或格式错误的 javascript 有关。第 10 行的应用程序布局是什么?
-
@arieljuod 是这一行:
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> -
我也在 CI/CD 中随机获得这个。那行
app/views/layouts/site/application.html.erb:10通常指向javascript_pack_tag语句,这让我相信测试和 webpack 之间存在某种竞争条件 -
此行为在 rails/webpacker 发布,问题仍未解决:github.com/rails/webpacker/issues/2860
标签: ruby-on-rails ruby continuous-integration ruby-on-rails-6 webpacker