[笔记]180613

xshell5 绿色版,启动时提示缺少 MSCVP110.dll

xshell5 绿色版,启动时提示缺少 MSCVP110.dll,在各网站下载了对应的Dll文件,依然尝试无果;最后我在xshell 官网下载 xshell6 个人版安装包,安装完就可以使用,旧 xshell5的session 文件夹路径大概是 Data\Settings\NetSarang\Xshell\Sessions中,将下面的文件复制到 新安装的 xshell6 默认数据地址下的6\Xshell\Sessions下就可以了。Xshell 启动报缺少msvcp110.dll文件,参考了该文才决定使用安装包安装,而不是继续找缺失的dll文件,尝试启动绿色版的xshell5

学习 Laravel 使用TDD进行开发

参考 Test Driven API Development using Laravel, Dingo and JWT with Documentation

  1. 更正运行命令:
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
  1. 运行文章第二步进行单元测试命令,提示 Illuminate\Database\QueryException: could not find driver (SQL: select * from sqlite_master where type = 'table' and name = migrations)的错误信息,在php artisan migrate gives me an error could not find driver 找到解决方法,在 ubuntu中运行 sudo apt-get install php-sqlite3.
  2. laravel项目不是运行在根目录下,修复直接访问 http://localhost/blog/public/api时,会 301 重定向到 http://localhost/api下, 修改 .htaccess 文件中的RewriteRule ^(.*)/$ /$1 [L,R=301]RewriteRule ^(.*)/$ public/$1 [L,R=301], 参考链接: Removing "/public" from URL (Where does Laravel get the base URL from?)

  3. phpunit testunits 说明 phpunit 单元测试--laravel[持续更新]

    测试类中的所有方法必须为public 修饰并且以test开头的public function test*(){}方式

  4. 更正 文章中的命令 phpunit tests/FruitsTest.phpphpunit tests/Feature/FruitsTest.php,测试类中的方法名必须已test关键字开头,如文章中的it_fetches_fruits 得改为 testit_fetches_fruits,运行phpunit测试的时候,phpunit 才会执行这个方法
  5. laravel连接sqlite Connect to an Sqlite DB - Laravel documentation procedure doesn't work
  6. laravel .env default mysql config back

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

我根据教程和目前的语法写了一遍,基本了解清楚了在有dingo/api和jwt auth的情况下,如何写单元测试;我 学习该phpunit的 github 项目地址 github链接

如何写单元测试一直是我个人的空白

swagger-codegen swagger.yaml生成json文件

  1. swagger-codegen-cli 包列表目录

swagger-codegen-cli 2.2.1版本运行生成命令会报,如果 operationId 没有定义为空,会提示

Exception: null
    at io.swagger.codegen.DefaultGenerator.processOperation(DefaultGenerator.java:796)

使用 2.3.1版本,在path中的operationId为空,会自动生成operationId

如:

[main] WARN io.swagger.codegen.DefaultCodegen - Empty operationId found for path
: post /user/login. Renamed to auto-generated operationId: userLoginPost

最后生成 swagger.json文件,但是我windows 7 下生成的swagger.json 文件编码是GB2312,在 swagger-ui中显示的中文会乱码

windows下运行,需要加上set JAVA_OPTS=-Dfile.encoding=UTF-8,ASP.NET Core 1.0

java -jar swagger-codegen-cli-2.3.1.jar generate  -i swagger.yaml -l swagger -o tests 

我将 swagger-codegen-cli-2.3.1.jar 放入到 opt中:

java -jar /opt/swagger-codegen-cli-2.3.1.jar generate -iswagger.yaml -l swagger

Linux(我的vagrant安装了ubuntu xenial执行同一个命令后)生成的swagger.json文件编码(Encoding)是 UTF-8,使用swagger ui 访问,中文显示正常

在Jenkins中,因为我项目中的 swagger的yaml是分开的,所以需要借助其它工具进行合并 其它的yaml文件为一个大的 swagger.yaml,工具链接swagger-merger

目前只用到 jenkins 通过 Publish over ssh插件进行自动部署,运行的案列:

cd /var/www/html/testapi # 进入 testapi 目录中
/usr/src/node-v8.11.1-linux-x64/bin/swagger-merger -i ./yamlmerge/main.yaml -o ./yamlmerge/swagger.yaml # 合并yaml文件
java -jar /opt/swagger-codegen-cli-2.3.1.jar generate -i yamlmerge/swagger.yaml -l swagger -o public/api # 将swagger.yaml 转换为swagger.json 并输出(放)到 public/api 目录中

Linux sed -i 学习

sed -i 直接替换文件中的内容不输出,

如 将 laravel .env中的 QUEUE_DRIVER=sync 替换为 QUEUE_DRIVER=redis, 在Laravel的项目根目录中运行命令:

sed -i "s|QUEUE_DRIVER=sync|QUEUE_DRIVER=redis|" .env

其中的 s是替换指定字符

参考
  1. sed命令
  2. sed -i命令详解
  3. shell 判断文件夹或文件是否存在

转载于:https://www.cnblogs.com/fsong/p/9180683.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值