Ruby on rails CI正在进行样品纱线测试
我对开玩笑还比较陌生,并尝试在我的GitLab CI上为Rails应用程序运行它。当我在本地运行测试时,它们运行得非常好。我使用此命令运行它们:Ruby on rails CI正在进行样品纱线测试,ruby-on-rails,jestjs,gitlab,yarnpkg,Ruby On Rails,Jestjs,Gitlab,Yarnpkg,我对开玩笑还比较陌生,并尝试在我的GitLab CI上为Rails应用程序运行它。当我在本地运行测试时,它们运行得非常好。我使用此命令运行它们: yarn run test 好了,这和跑步一样: npm run test 当我在CI上运行时,测试通过,但它也在Gems中运行各种示例测试。请参阅下面的日志 为什么我要运行示例测试,如何停止它 $ yarn run test yarn run v1.22.4 $ jest FAIL vendor/ruby/2.7.0/gems/capybara-
yarn run test
好了,这和跑步一样:
npm run test
当我在CI上运行时,测试通过,但它也在Gems中运行各种示例测试。请参阅下面的日志
为什么我要运行示例测试,如何停止它
$ yarn run test
yarn run v1.22.4
$ jest
FAIL vendor/ruby/2.7.0/gems/capybara-3.14.0/lib/capybara/spec/public/test.js
● Test suite failed to run
ReferenceError: $ is not defined
1 | var activeRequests = 0;
> 2 | $(function() {
| ^
3 | $('#change').text('I changed it');
4 | $('#drag, #drag_scroll, #drag_link').draggable();
5 | $('#drop, #drop_scroll').droppable({
at Object.<anonymous> (vendor/ruby/2.7.0/gems/capybara-3.14.0/lib/capybara/spec/public/test.js:2:1)
PASS app/javascript/reactjs/article/AudioContent.test.js
FAIL vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/environments/__tests__/base.js
● Environment › toWebpackConfig › should return multi file entry points
TypeError: Cannot read property 'sort' of undefined
32 | test('should return multi file entry points', () => {
33 | const config = environment.toWebpackConfig()
> 34 | expect(config.entry.multi_entry.sort()).toEqual([
| ^
35 | resolve('app', 'javascript', 'packs', 'multi_entry.css'),
36 | resolve('app', 'javascript', 'packs', 'multi_entry.js')
37 | ])
at Object.<anonymous> (vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/environments/__tests__/base.js:34:39)
● Environment › toWebpackConfig › should return default resolve.modules with additions
expect(received).toEqual(expected) // deep equality
- Expected - 3
+ Received + 0
Array [
"/builds/immersive-apps/immersive/app/javascript",
- "/builds/immersive-apps/immersive/app/assets",
- "/etc/yarn",
- "/builds/immersive-apps/immersive/app/elm",
"node_modules",
]
83 | test('should return default resolve.modules with additions', () => {
84 | const config = environment.toWebpackConfig()
> 85 | expect(config.resolve.modules).toEqual([
| ^
86 | resolve('app', 'javascript'),
87 | resolve('app/assets'),
88 | resolve('/etc/yarn'),
at Object.<anonymous> (vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/environments/__tests__/base.js:85:38)
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/config_types/__tests__/config_list.js
PASS app/javascript/reactjs/article/ArticleHeader.test.js
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/utils/__tests__/get_style_rule.js
PASS app/javascript/reactjs/article/AudioPlayer.test.js
FAIL vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/config.js
● Config › should return additional paths as listed in app config, with resolved paths
expect(received).toEqual(expected) // deep equality
- Expected - 5
+ Received + 1
- Array [
- "app/assets",
- "/etc/yarn",
- "app/elm",
- ]
+ Array []
25 |
26 | test('should return additional paths as listed in app config, with resolved paths', () => {
> 27 | expect(config.additional_paths).toEqual(
| ^
28 | [
29 | 'app/assets',
30 | '/etc/yarn',
at Object.<anonymous> (vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/config.js:27:37)
● Config › should return extensions as listed in app config
expect(received).toEqual(expected) // deep equality
- Expected - 1
+ Received + 1
@@ -1,6 +1,7 @@
Array [
+ ".jsx",
".mjs",
".js",
".sass",
".scss",
".css",
@@ -10,7 +11,6 @@
".png",
".svg",
".gif",
".jpeg",
".jpg",
- ".elm",
]
35 |
36 | test('should return extensions as listed in app config', () => {
> 37 | expect(config.extensions).toEqual([
| ^
38 | '.mjs',
39 | '.js',
40 | '.sass',
at Object.<anonymous> (vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/config.js:37:31)
● Config › should return static assets extensions as listed in app config
expect(received).toEqual(expected) // deep equality
- Expected - 0
+ Received + 5
@@ -4,6 +4,11 @@
".png",
".gif",
".tiff",
".ico",
".svg",
+ ".eot",
+ ".otf",
+ ".ttf",
+ ".woff",
+ ".woff2",
]
54 |
55 | test('should return static assets extensions as listed in app config', () => {
> 56 | expect(config.static_assets_extensions).toEqual([
| ^
57 | '.jpg',
58 | '.jpeg',
59 | '.png',
at Object.<anonymous> (vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/config.js:56:45)
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/dev_server.js
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/development.js
FAIL vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/env.js
● Env › with a non-standard environment
expect(received).toEqual(expected) // deep equality
- Expected - 1
+ Received + 1
Object {
"nodeEnv": "production",
- "railsEnv": "staging",
+ "railsEnv": "production",
}
39 | process.env.RAILS_ENV = 'staging'
40 | process.env.NODE_ENV = 'staging'
> 41 | expect(require('../env')).toEqual({
| ^
42 | railsEnv: 'staging',
43 | nodeEnv: 'production'
44 | })
at Object.<anonymous> (vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/env.js:41:31)
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/config_types/__tests__/config_object.js
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/utils/__tests__/deep_assign.js
FAIL vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/staging.js
● Custom environment › toWebpackConfig › should use staging config and default production environment
expect(received).toEqual(expected) // deep equality
Expected: "/builds/immersive-apps/immersive/public/packs-staging"
Received: "/builds/immersive-apps/immersive/public/packs"
19 | const config = environment.toWebpackConfig()
20 |
> 21 | expect(config.output.path).toEqual(resolve('public', 'packs-staging'))
| ^
22 | expect(config.output.publicPath).toEqual('/packs-staging/')
23 | expect(config).toMatchObject({
24 | devtool: 'source-map',
at Object.<anonymous> (vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/staging.js:21:34)
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/production.js
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__tests__/test.js
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/utils/__tests__/deep_merge.js
PASS vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/utils/__tests__/objectify.js
FAIL vendor/ruby/2.7.0/gems/webpacker-5.2.1/lib/install/config/webpack/test.js
● Test suite failed to run
Your test suite must contain at least one test.
at onResult (node_modules/@jest/core/build/TestScheduler.js:175:18)
at node_modules/@jest/core/build/TestScheduler.js:304:17
at node_modules/emittery/index.js:260:13
at Array.map (<anonymous>)
at Emittery.Typed.emit (node_modules/emittery/index.js:258:23)
FAIL vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/environments/test.js
● Test suite failed to run
Your test suite must contain at least one test.
at onResult (node_modules/@jest/core/build/TestScheduler.js:175:18)
at node_modules/@jest/core/build/TestScheduler.js:304:17
at node_modules/emittery/index.js:260:13
at Array.map (<anonymous>)
at Emittery.Typed.emit (node_modules/emittery/index.js:258:23)
Test Suites: 7 failed, 13 passed, 20 total
Tests: 7 failed, 61 passed, 68 total
$纱线运行测试
纱线运行v1.22.4
$jest
失败供应商/ruby/2.7.0/gems/capybara-3.14.0/lib/capybara/spec/public/test.js
● 测试套件无法运行
ReferenceError:$未定义
1 | var activeRequests=0;
>2 |$(函数(){
| ^
3 |$(“#更改”)。文本(“我更改了它”);
4 |$('#拖动,#拖动滚动,#拖动链接')。可拖动();
5 |$(“#下降,#下降#滚动”)。可下降({
at对象。(vendor/ruby/2.7.0/gems/capybara-3.14.0/lib/capybara/spec/public/test.js:2:1)
通过app/javascript/reactjs/article/AudioContent.test.js
失败供应商/ruby/2.7.0/gems/webpacker-5.2.1/package/environments//uuuu测试/uuu测试/base.js
● 环境›TowerBackConfig›应返回多文件入口点
TypeError:无法读取未定义的属性“sort”
32 | test('应返回多文件入口点',()=>{
33 | const config=environment.towerbackconfig()
>34 | expect(config.entry.multi_entry.sort()).toEqual([
| ^
35 |解析('app','javascript','packs','multi_entry.css'),
36 |解析('app','javascript','packs','multi_entry.js')
37 | ])
在对象上。(vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/environments/__;tests__;/base.js:34:39)
● Environment›TowerBackConfig›应返回默认的resolve.modules及附加内容
expect(received).toEqual(expected)//深度相等
-预期-3
+收到+0
排列[
“/builds/immersive apps/immersive/app/javascript”,
-“/builds/immersive apps/immersive/app/assets”,
-“/etc/纱线”,
-“/builds/immersive apps/immersive/app/elm”,
“节点_模块”,
]
83 | test('应返回带有附加项的默认resolve.modules',()=>{
84 | const config=environment.towerbackconfig()
>85 | expect(config.resolve.modules).toEqual([
| ^
86 |解析('app','javascript'),
87 |解决(“应用程序/资产”),
88 |解析('/etc/warn'),
在对象上。(vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/environments/__;tests\u___;/base.js:85:38)
通过vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/config_types//uuu_测试/uu_/config_list.js
通过app/javascript/reactjs/article/ArticleHeader.test.js
通过vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/utils//uuuu测试\uuuu/get\u style\u rule.js
通过app/javascript/reactjs/article/AudioPlayer.test.js
失败供应商/ruby/2.7.0/gems/webpacker-5.2.1/package//uuuu tests\uuuu/config.js
● Config›应返回应用程序配置中列出的其他路径,以及已解析的路径
expect(received).toEqual(expected)//深度相等
-预期-5
+收到+1
-排列[
-“应用程序/资产”,
-“/etc/纱线”,
-“应用程序/elm”,
- ]
+数组[]
25 |
26 | test('应返回应用程序配置中列出的其他路径,以及已解析的路径',()=>{
>27 | expect(配置其他路径)。toEqual(
| ^
28 | [
29 |“应用程序/资产”,
30 |'/等/纱',
在对象上。(vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__-tests\u_/config.js:27:37)
● Config›应返回app Config中列出的扩展名
expect(received).toEqual(expected)//深度相等
-预期-1
+收到+1
@@ -1,6 +1,7 @@
排列[
+“.jsx”,
“.mjs”,
“.js”,
“.sass”,
“.scss”,
“.css”,
@@ -10,7 +11,6 @@
“.png”,
“.svg”,
“.gif”,
“.jpeg”,
“.jpg”,
-“.elm”,
]
35 |
36 | test('应返回应用程序配置中列出的扩展名',()=>{
>37 | expect(config.extensions).toEqual([
| ^
38 |‘.mjs’,
39 |'.js',
40 |'sass',
在对象上。(vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__-tests\u_/config.js:37:31)
● 配置›应返回应用程序配置中列出的静态资产扩展
expect(received).toEqual(expected)//深度相等
-预期为-0
+收到+5
@@ -4,6 +4,11 @@
“.png”,
“.gif”,
“.tiff”,
“.ico”,
“.svg”,
+“.eot”,
+“.otf”,
+“.ttf”,
+“.woff”,
+“.woff2”,
]
54 |
55 | test('应返回应用程序配置中列出的静态资产扩展',()=>{
>56 | expect(配置静态资产扩展)。toEqual([
| ^
57 |'.jpg',
58 |“.jpeg”,
59 |'.png',
在对象上。(vendor/ruby/2.7.0/gems/webpacker-5.2.1/package/__-tests\u_/config.js:56:45)
通过vendor/ruby/2.7.0/gems/webpacker-5.2.1/package//uuu测试/uu测试/dev\u服务器.js
通过vendor/ruby/2.7.0/gems/webpacker-5.2.1/package//uuuu测试/uuuu/development.js
未能通过供应商/ruby/2.7.0/gems/webpacker-5.2.1/package//uuuu测试/uuuu/env.js
● 环境›具有非标准环境
expect(received).toEqual(expected)//深度相等
-预期-1
+收到+1
反对{
“nodeEnv”:“生产”,
-“railsEnv”:“登台”,
+“railsEnv”:“生产”,
}
39 | process.env.RAILS_env='staging'
40 | process.env.NODE_env='staging'
>41 | expect(require('../env')).toEqual({
| ^
42 | railsEnv:“登台”,
43 |诺丁诺夫:“生产”
"jest": {
...
"testPathIgnorePatterns": [
"<rootDir>/vendor/"
]
"scripts": {
"test": "jest --verbose ./app/javascript"
},