Neo Anderson's Blog

单元测试(Laravel版)

字数统计: 492阅读时长: 2 min
2018/04/25
一,项目基础条件

1, 项目推荐采用composer统一进行包管理

2, 视环境PHP版本安装对应的单元测试工具(phpunit)

3, composer依赖包中包含如下3大依赖
d9cc44bc6b3c9935fe97db9d06d5155f.png

4,修改配置文件phpunit.xml(项目根目录)
834bb64551f9870dab458a190d3ddb2d.png

5, composer相关依赖完成后, 拷贝vendor目录下的phpunit命令到项目根目录

1
cp ./vendor/bin/phpunit ./
二, 项目的一般目录构成(针对laravel)

41c4120ac53c2ec83c25b5cbcc5eb9cf.png

三, 生成测试文件

1, 生成测试文件(测试文件名不需要和被测试的功能和单元文件同名),测试文件名可以包含相对目录名

1
2
3
php artisan make:test UserTest   ##在Feature目录下生成名为UserTest的测试文件(功能测试

php artisan make:test UserTest --unit ##在Unit目录下生成名为UserTest的测试文件(单元测试
四, 编写测试逻辑
五, 发起单元测试

1, 测试指定文件

1
./phpunit  path/filename

2, 测试全量用例

1
./phpunit
六, 测试输出结果的一些说明

35b7e1b3fa8c9d390723d1b517a95fe9.png

  • 当前使用的phpunit版本 及相关权利申明等
    1
    PHPUnit 5.7.27 by Sebastian Bergmann and contributors.
  • 当前执行PHP版本和环境
    1
    Runtime: PHP7.3.3  
  • 当前phpunit执行值读取环境变量配置的配置文件位置
    1
    2
    Configuration: /private/var/www/live/ding.msg/phpunit.xml 

  • 当前测试用例中每一个method返回的测试结果
    • . 代表测试结果符合预期,测试成功
      F 代表测试结果不符合预期,测试失败
      E 代表运行中产生错误,
      1
      ..F.                                     4 / 4 (100%)
  • 该测试执行后,所消耗的时间,空间等
    1
    Time: 100 ms, Memory: 12.00MB 
  • 测试不符合预期,产生问题的位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
There was 1 failure:

1) Tests\Feature\Demo\OutputTest::testEquality
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
Array (
0 => 0
1 => 1
- 2 => 2
+ 2 => 22
3 => 3
4 => 4
)

/private/var/www/live/tests/Feature/Demo/OutputTest.php:28
CATALOG
  1. 1. 一,项目基础条件
  2. 2. 二, 项目的一般目录构成(针对laravel)
  3. 3. 三, 生成测试文件
  4. 4. 四, 编写测试逻辑
  5. 5. 五, 发起单元测试
  6. 6. 六, 测试输出结果的一些说明