首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5测试环境未在Codeception单元测试中设置

Laravel 5测试环境未在Codeception单元测试中设置
EN

Stack Overflow用户
提问于 2015-04-08 08:41:25
回答 3查看 2.9K关注 0票数 7

我正在使用Larave5和Codeception,并且我想使用内存中的SQLite数据库进行单元测试,但是,我似乎无法将我的环境设置为Codeception中的“测试”。我正在使用Laravel5模块,并在我的unit.suite.yml文件中定义了以下内容:

代码语言:javascript
复制
class_name: UnitTester
modules:
    enabled: [Asserts, UnitHelper, Laravel5]
    config:
        Laravel5:
            environment_file: .env.testing

我有一个定义所有本地设置的.env文件,还有一个定义所有特定于测试的设置的.env.testing文件。然而,它似乎从未真正正确地设置过环境。

为了测试我刚刚做的环境:

代码语言:javascript
复制
$this->assertEquals('testing', \App::environment());

我总是得到这样的回答:

代码语言:javascript
复制
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'testing'
+'local'

有人知道我做错了什么吗?

EN

回答 3

Stack Overflow用户

发布于 2015-04-08 10:53:59

您是否在.env.testing文件中设置了环境名称?

代码语言:javascript
复制
APV_ENV=testing
票数 4
EN

Stack Overflow用户

发布于 2017-03-08 11:18:54

这可能是因为您在全局codeception配置中定义了env文件。在项目根目录的codeception.yml文件中,检查params的值,应该如下所示

代码语言:javascript
复制
params:
    - .env.testing
票数 4
EN

Stack Overflow用户

发布于 2015-09-10 05:07:00

我对.env完全陌生,但我刚刚发现在我的本地机器和(例如) Codeship上运行测试的唯一方法就是在我需要的时候符号链接laravel。(我知道-这不是一种非常干净的方式,但嘿,它是有效的)

我的本地.env文件旁边有:

代码语言:javascript
复制
#.env.testing
APP_ENV=testing
DB_CONNECTION=default_mysql
DB_DATABASE=test_db
... etc

和:

代码语言:javascript
复制
#.env.codeship
APP_ENV=codeship
DB_CONNECTION=codeship

对于本地测试,我使用了一个别名:

代码语言:javascript
复制
alias pl='rm .env; ln -s .env.testing .env; phpunit; rm .env; ln -s .env.local .env'

其中.env.local保存了我的本地.env文件的副本。

对于Codeships测试流水线:

代码语言:javascript
复制
ln -s .env.codeship .env
php artisan migrate --seed
phpunit

数据库配置:

代码语言:javascript
复制
// CODESHIP
'codeship' => [
    'driver' => 'mysql',        
    'username' => getenv('MYSQL_USER'),
    'password' => getenv('MYSQL_PASSWORD'),
    // etc        
],

// LOCAL DEV // PHPUNIT
'default_mysql' => [
    'driver' => 'mysql',
    'username' => env('DB_USERNAME', 'localhost'),
    'password' => env('DB_PASSWORD', 'forge'),
    // etc        
],

如果有人有更好的想法,我很高兴听到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29503940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档