互联网上充斥着关于 Gitlab 不缓存的抱怨,但在我看来,Gitlab CI 确实缓存正确。问题是,无论如何,npm 似乎都会再次安装所有内容。
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- vendor/
- bootstrap/
- node_modules/
build-dependencies:
image: ...
stage: build
script:
- cp .env.gitlab-testing .env
- composer install --no-progress --no-interaction
- php artisan key:generate
- npm install
- npm run prod
- npm run prod
artifacts:
paths:
- vendor/
- bootstrap/
- node_modules/
- .env
- public/mix-manifest.json
tags:
- docker
Run Code Online (Sandbox Code Playgroud)
这是我的 gitlab-ci.yml 文件(好吧..相关部分)。虽然使用了缓存的 Composer 依赖项,但没有使用 node_modules。出于绝望,我什至将所有内容都添加到缓存和工件中。
我刚开始使用Gitlab CI(使用docker executor).面对并解决了一些初学者的问题后,我现在面临着一个非常奇怪的问题.
我所有的单元测试都在本地成功,但是当我用CI运行它们时,其中一些测试失败.
一个例子:
[2018-12-09 18:05:57] testing.ERROR: Trying to get property 'email' of non-object {"userId":834,"email":"hugh.will@example.org","exception":"[object] (ErrorException(code: 0): Trying to get property 'email' of non-object at /builds/.../laravel/framework/src/Illuminate/Mail/Mailable.php:492)
Run Code Online (Sandbox Code Playgroud)
嗯..我知道这个错误意味着什么,但是当测试在本地成功时,调试极其困难,我不知道从哪里开始.
这是我的.yml文件的test_job部分:
test_job:
stage: test
services:
- mysql:5.7
- redis:latest
artifacts:
when: always
paths:
- storage/logs/
dependencies:
- build_job
script:
- sh .gitlab-test.sh
tags:
- docker
Run Code Online (Sandbox Code Playgroud)
只是为了确定 - 我的test.sh
#!/bin/sh
set -xe
php -v
ping -c 3 mysql
php artisan migrate
php artisan db:seed --class=TestingSeeder
php vendor/bin/phpunit --coverage-text --colors
Run Code Online (Sandbox Code Playgroud)
我的问题:
似乎某个地方解析json失败了,但是Mailable是一个Laravel组件应该(并且确实)工作.
Laravel 5.5和Gitlab …
我有一个页面,其中包含一些禁用的输入、跨度和 div。
在后台我等待按键。这是一些记忆游戏的背景。
我的问题是,结果证明它很难测试。
我知道两个函数来模拟输入:type()和keys(). 当我使用时keys("@someElement", "34"),我得到“元素不可交互”。类似的情况发生在type()(这并不奇怪,因为 type 建议填写一些输入)。
如何在不使用活动输入元素的情况下正确模拟按键?