我只是想出一個最簡單的方式對我的PHP-FPM容器推出PHPUnit測試,這裏的命令:
docker exec $(docker ps -n=-1 -q --filter name=my_php_container_name --format="{{.ID}}") phpunit --configuration /myproject/src/Tests/phpunit.xml --testsuite testAllSuites
所以現在每當我在這裏我的代碼改變什麼我做什麼:
docker-compose build
docker-compose up
docker exec $(docker ps -n=-1 -q --filter name=my_php_container_name --format="{{.ID}}") phpunit --configuration /myproject/src/Tests/phpunit.xml --testsuite testAllSuites
所以這意味着我不必顯示所有的碼頭集裝箱(docker ps)來獲取id並手動更新命令以在新的集裝箱id上啓動phpunit。
辦刊此命令西港島線僅返回CONTAINER_ID:
docker ps -n=-1 -q --filter name=my_php_container_name --format="{{.ID}}"
這裏一些解釋:
-N = -1:表演n上次ceated容器
-q:只顯示數字ID
有關opti的更多詳細信息ONS這裏docker documentation
注:只是爲了舉例來說,如果我們移動phpunit.xml文件剛下/myproject的/根PHPUnit命令可以更小,如果我們運行PHPUnit的它會自動加載的PHPUnit .XML和在你的/測試運行所有測試/ ...文件夾,該命令將是:
docker exec $(docker ps -n=-1 -q --filter name=my_php_container_name --format="{{.ID}}") phpunit
編輯:
下水測試throught PHPstorm另一個好辦法: Running tests in PHPStorm with PHPUnit and Docker
希望這可以幫助別人...
爲什麼不使用的容器名稱,而不是ID的? docker-compose應該給它一個可預測的名字,你在過濾器中使用它。 – BMitch
如何使用容器名稱?我嘗試了不同的命令來使用容器名稱,它不工作...你能給我一個使用命令的例子嗎?我仍然是碼頭初學者,我可能會錯過一些技巧...... –