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
- 更正运行命令:
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
- 运行文章第二步进行单元测试命令,提示
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
. 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?)phpunit testunits 说明 phpunit 单元测试--laravel[持续更新]
测试类中的所有方法必须为public 修饰并且以test开头的public function test*(){}方式
- 更正 文章中的命令
phpunit tests/FruitsTest.php
为phpunit tests/Feature/FruitsTest.php
,测试类中的方法名必须已test
关键字开头,如文章中的it_fetches_fruits
得改为testit_fetches_fruits
,运行phpunit测试的时候,phpunit 才会执行这个方法 - laravel连接sqlite Connect to an Sqlite DB - Laravel documentation procedure doesn't work
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文件
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
是替换指定字符