如果我用bin/rails test
运行测试,它会触发yarn运行两次,一次是esbuild,一次是css。如果我用bin/rails test test/**/**.rb
或bin/rails test test/
运行所有相同的测试,测试会立即运行。
为什么我没有运行系统测试时会发生这种情况)?
**版本:**Rails 7.1.1、Ruby 3.2.2、Minitest 5.20.0
使用rails new my_app --javascript esbuild --css bootstrap
创建的应用程序
附加问题-下次我如何自己解决这个问题?
我的测试助手似乎没有调用rails test:prepare
或其他任何触发yarn的东西:
# test/test_helper.rb
ENV["RAILS_ENV"] ||= "test"
require_relative "../config/environment"
require "rails/test_help"
module ActiveSupport
class TestCase
# Run tests in parallel with specified workers
parallelize(workers: :number_of_processors)
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
fixtures :all
# Add more helper methods to be used by all tests here...
end
end
字符串
我试着遍历test_helper.rb
中的每个require
d文件,但找不到yarn/assets/precompilation被告知发生的其他地方:
../config/environment
config/application
config/boot
rails/all
(甚至不知道从哪里开始开始)rails/test_help
x1(通读source,但只查看它所需的内容之一)active_support/testing/autorun
(source)
我还尝试了bundle open minitest
,希望有什么配置,但我四处查看了一下,没有看到任何相关的内容。
yarn/asset-compilation“magic”在哪里配置用于测试?
1条答案
按热度按时间wnrlj8wa1#
“我的测试助手似乎没有调用
rails test:prepare
“调用
rails test
而不使用任何参数时,它将为您调用test:prepare
源字符串
和源
型
如《升级指南》中所述
当通过
bin/rails test
运行测试时,rake test:prepare
任务将在测试运行之前运行。如果您已经增强了test:prepare
任务,则您的增强将在测试之前运行。tailwindcss-rails
、jsbundling-rails
和cssbundling-rails
增强了此任务,其他第三方gem也是如此。您可以看到,这实际上构建了
yarn
Cssbundling和Jsbundling