네 말이 맞아. 주요 문제점은 jasmine-gem
그것이 바벨을 통해 스펙을 파이프하지 않는다는 것입니다. 문제에 대한 가장 빠른 해결책을 게시하고 그 후에 유사한 접근법을 구현할 수 있다고 생각합니다 jasmine-gem
.
주요 아이디어는 필요한 모든 바벨 구성이있는 한 레일 웹팩을 통해 사양을 파이프하는 것입니다.
- 이 솔루션
jasmine-core
에서는 사용하지 않으므로 설치jasmine-gem
yarn add jasmine-core -D
이제 두 개의 추가 웹팩 팩을 작성하십시오. 하나는 Jasmine을위한 것이며 Jasmine과 테스트 러너 만 포함합니다.
// app/javascript/packs/jasmine.js
import 'jasmine-core/lib/jasmine-core/jasmine.css'
import 'jasmine-core/lib/jasmine-core/jasmine-html.js'
import 'jasmine-core/lib/jasmine-core/boot.js'
import 'jasmine-core/images/jasmine_favicon.png'
그리고 응용 프로그램 코드와 사양을위한 두 번째 코드
// app/javascript/packs/specs.js
// First load your regular JavaScript (copy all the JavaScript imports from your main pack).
let webpackContext = require.context('../javascripts', true, /\.js(\.erb)?$/)
for(let key of webpackContext.keys()) { webpackContext(key) }
// Then load the specs
let specsContext = require.context('../spec', true, /\.js(\.erb)?$/)
for(let key of specsContext.keys()) { specsContext(key) }
당신 '../javascripts'
과 '../spec'
경로에 주의하십시오 . 나에게는처럼 보였다 '../../assets/javascripts'
및 '../../../spec'
respectevly.
그런 다음 Jasmine 용 Webpack ProvidePlugin을 추가하십시오 (이 코드를에 추가하십시오 config/webpack/environment.js
)
// config/webpack/environment.js
const webpack = require('webpack')
environment.plugins.prepend('Provide', new webpack.ProvidePlugin({
jasmineRequire: 'jasmine-core/lib/jasmine-core/jasmine.js',
}))
애플리케이션에 Jasmine 러너 페이지 추가
# config/routes.rb
Rails.application.routes.draw do
# ...
if Rails.env.development? || Rails.env.test?
get 'jasmine', to: 'jasmine#index'
end
end
# app/controllers/jasmine_controller.rb
class JasmineController < ApplicationController
layout false
def index
end
end
# app/views/jasmine/index.html.haml
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<%= stylesheet_pack_tag 'jasmine', :media => 'all' %>
</head>
<body>
<%= javascript_pack_tag 'jasmine' %>
<%= javascript_pack_tag 'specs' %>
</body>
</html>
- 이제 재스민이
/jasmine
경로에서 작동해야 합니다.
내 답변이 도움이되었는지 또는 추가 정보가 필요한지 알려주십시오. 그러나 jasmine
gem 또는 이와 유사한 구현으로 성공할 수있는 솔루션을 연구하겠습니다 .