socket.io开发_使用Dockunit.io的容器化WordPress开发_culi3182的博客-程序员宝宝

技术标签: python  java  编程语言  软件测试  docker  

socket.io开发

Writing WordPress themes and plugins to be publicly distributed requires meeting minimum system requirements, specifically PHP 5.2.4. Since WordPress supports PHP 5.2.4 so must your public plugins and themes. PHP has changed immensely between PHP 5.2 and now PHP 7 RC.

编写要公开分发的WordPress主题和插件需要满足最低系统要求,尤其是PHP 5.2.4。 由于WordPress支持PHP 5.2.4,因此您的公共插件和主题也必须如此。 在PHP 5.2和现在PHP 7 RC之间,PHP发生了巨大的变化。

To ensure your software is compatible with all of the WordPress community it’s important to test your software in a few major PHP versions, i.e. 5.2.4, 5.6, and 7.0 RC. We could of course test more versions, but picking three major ones is a safe bet.

为了确保您的软件与所有WordPress社区兼容,在几个主要PHP版本(即5.2.4、5.6和7.0 RC)中测试软件非常重要。 我们当然可以测试更多版本,但是选择三个主要版本是安全的选择。

How do we test our plugin or theme in three major versions of PHP? Generally, our system can only run one version of PHP at a time. We could spin up different virtual machines with different PHP versions, however this is pretty difficult. The answer is containers with Docker.

我们如何在PHP的三个主要版本中测试我们的插件或主题? 通常,我们的系统一次只能运行一个版本PHP。 我们可以使用不同PHP版本启动不同的虚拟机,但这非常困难。 答案是使用Docker的容器。

Dockunit is a utility for running containerized software tests. Let’s setup Dockunit to be used with a plugin or theme (this guide assumes you are working on some sort of Unix system such as OS X or Ubuntu):

Dockunit是用于运行容器化软件测试的实用程序。 让我们将Dockunit设置为与插件或主题一起使用(本指南假定您正在使用某种类型的Unix系统,例如OS X或Ubuntu):

坞站设置 (Dockunit Setup)

1.下载并安装Dockunit及其依赖项。 (1. Download and install Dockunit and it’s dependencies.)

First, install Docker via their simple installation instructions. Next, we need Node.js and npm (which should be included in your Node.js install).

首先, 按照其简单的安装说明安装Docker。 接下来,我们需要Node.jsnpm (它们应包含在您的Node.js安装中)。

Finally, install Dockunit:

最后,安装Dockunit:

npm install -g dockunit

2.为Dockunit设置项目。 (2. Setup your project for Dockunit.)

Dockunit reads Dockunit.json files within your project. Dockunit.json describes the containers you want to use and how you want to run test commands. Our Dockunit.json file will define containers for PHP 5.2, 5.6, and 7.0 RC 1 since we are most concerned about those PHP version. Dockunit has no limitations; we could define containers for different MySQL versions, different WordPress versions, Apache vs. nginx, our completely different programming languages unrelated to WordPress. One of the big advantages of Dockunit over something like Travis CI is that we can create the containers we use ourselves, and we can run tests in the containers locally.

Dockunit读取项目中的Dockunit.json文件。 Dockunit.json描述了您要使用的容器以及如何运行测试命令。 我们的Dockunit.json文件将为PHP Dockunit.json和7.0 RC 1定义容器,因为我们最关心的是那些PHP版本。 Dockunit没有限制; 我们可以为不同MySQL版本,不同的WordPress版本,Apache vs. nginx(我们与WordPress完全不同的编程语言)定义容器。 与Travis CI之类的产品相比,Dockunit的一大优点是我们可以创建自己使用的容器,并且可以在容器中本地运行测试。

Create a file named Dockunit.json in the root of our plugin or theme.

在我们的插件或主题的根目录中创建一个名为Dockunit.json的文件。

If you are testing a plugin, paste this into Dockunit.json (make sure to change PLUGIN-NAME.php to the main plugin file in your plugin):

如果要测试插件, Dockunit.json粘贴到Dockunit.json (确保将PLUGIN-NAME.php更改为插件中的主插件文件):

{
        "containers": [
                {
                        "prettyName": "PHP-FPM 5.2",
                        "image": "dockunit/prebuilt-images:php-mysql-phpunit-wordpress-5.2-fpm",
                        "beforeScripts": [
                                "service mysql start",
                                "wp-install latest"
                        ],
                        "testCommand": "wp-activate-plugin PLUGIN-NAME.php"
                },
                {
                        "prettyName": "PHP-FPM 5.6",
                        "image": "dockunit/prebuilt-images:php-mysql-phpunit-wordpress-5.6-fpm",
                        "beforeScripts": [
                                "service mysql start",
                                "wp core download --path=/temp/wp --allow-root",
                                "wp core config --path=/temp/wp --dbname=test --dbuser=root --allow-root",
                                "wp core install --url=http://localhost --title=Test --admin_user=admin --admin_password=12345 [email protected] --path=/temp/wp --allow-root",
                                "mkdir /temp/wp/wp-content/plugins/test",
                                "cp -r . /temp/wp/wp-content/plugins/test"
                        ],
                        "testCommand": "wp plugin activate test --allow-root --path=/temp/wp"
                },
                {
                        "prettyName": "PHP-FPM 7.0",
                        "image": "dockunit/prebuilt-images:php-mysql-phpunit-wordpress-7.0-rc-1-fpm",
                        "beforeScripts": [
                                "service mysql start",
                                "wp core download --path=/temp/wp --allow-root",
                                "wp core config --path=/temp/wp --dbname=test --dbuser=root --allow-root",
                                "wp core install --url=http://localhost --title=Test --admin_user=admin --admin_password=12345 [email protected] --path=/temp/wp --allow-root",
                                "mkdir /temp/wp/wp-content/plugins/test",
                                "cp -r . /temp/wp/wp-content/plugins/test"
                        ],
                        "testCommand": "wp plugin activate test --allow-root --path=/temp/wp"
                }
        ]
}

If you are testing a theme, paste this into Dockunit.json:

如果要测试主题, Dockunit.json粘贴到Dockunit.json

{
 "containers": [
   {
     "prettyName": "PHP-FPM 5.2 WordPress Latest",
     "image": "dockunit/prebuilt-images:php-mysql-phpunit-wordpress-5.2-fpm",
     "beforeScripts": [
       "service mysql start",
       "wp-install latest"
     ],
     "testCommand": "wp-activate-theme test"
   },
   {
     "prettyName": "PHP-FPM 5.6 WordPress Latest",
     "image": "dockunit/prebuilt-images:php-mysql-phpunit-wordpress-5.6-fpm",
     "beforeScripts": [
       "service mysql start",
       "wp core download --path=/temp/wp --allow-root",
       "wp core config --path=/temp/wp --dbname=test --dbuser=root --allow-root",
       "wp core install --url=http://localhost --title=Test --admin_user=admin --admin_password=12345 [email protected] --path=/temp/wp --allow-root",
       "mkdir /temp/wp/wp-content/themes/test",
       "cp -r . /temp/wp/wp-content/themes/test"
     ],
     "testCommand": "wp theme activate test --allow-root --path=/temp/wp"
   },
   {
     "prettyName": "PHP-FPM 7.0 WordPress Latest",
     "image": "dockunit/prebuilt-images:php-mysql-phpunit-wordpress-7.0-rc-1-fpm",
     "beforeScripts": [
       "service mysql start",
       "wp core download --path=/temp/wp --allow-root",
       "wp core config --path=/temp/wp --dbname=test --dbuser=root --allow-root",
       "wp core install --url=http://localhost --title=Test --admin_user=admin --admin_password=12345 [email protected] --path=/temp/wp --allow-root",
       "mkdir /temp/wp/wp-content/themes/test",
       "cp -r . /temp/wp/wp-content/themes/test"
     ],
     "testCommand": "wp theme activate test --allow-root --path=/temp/wp"
   }
 ]
}

(OPTIONAL: If you have written actual unit/integration tests for your WordPress plugin or theme, you should run those. Here are some example Dockunit.json files for running unit/integration tests)

(可选:如果您已经为WordPress插件或主题编写了实际的单元/集成测试,则应运行它们。 这是一些用于运行单元/集成测试的示例Dockunit.json文件 。)

Let’s run through what some of the things mean in Dockunit.json. The files are written in JSON which is JavaScript object notation. All Dockunit.json files contain a root level object with a property ‘containers’ which holds an array of objects that each describe a test to be run in a Docker container. The idea is for containers to be different real life simulations of your software so you can see how it performs in different scenarios. Here is an example container object:

让我们看一下Dockunit.json中的某些含义。 这些文件以JSON编写,这是JavaScript对象的表示法。 所有Dockunit.json文件都包含一个带有属性“容器”的根级对象,该对象包含一个对象数组,每个对象都描述了要在Docker容器中运行的测试。 想法是使容器成为您软件的不同真实生活模拟,以便您可以查看容器在不同情况下的性能。 这是一个示例容器对象:

{
   "prettyName": "My container pretty name",
   "image": "docker-image-ref",
   "beforeScripts": [
     "before-command-1",
     "before-command-2"
   ],
   "testCommand": "my-command"
}

prettyName is just an easy way for you to describe your container which will be useful in build output. image refers to a Docker Hub image. Dockunit comes with a bunch of predefined images that you can use, however you can always create your own. beforeScripts allows you to run commands in the Docker container before the test command is run. testCommand is the command whose exit code will be evaluated to determine whether your software “passes” or not.

prettyName只是描述容器的一种简单方法,这对构建输出很有用。 image是指Docker Hub映像。 Dockunit附带了一堆可以使用的预定义图像 ,但是您始终可以创建自己的图像。 beforeScripts允许您在运行test命令之前在Docker容器中运行命令。 testCommand是将评估其退出代码以确定您的软件是否“通过”的命令。

Now that we’ve setup our Dockunit.json file, let’s run our tests. From within the root of your project, run the command in your terminal:

现在我们已经设置了Dockunit.json文件,让我们运行测试。 在项目的根目录中,在终端中运行命令:

dockunit

For each container you’ve defined, it will run the test command and evaluate the exit codes. If all your containers exited without error, then your build passed! If not, there is a problem with your code or how you setup Dockunit. The output should tell you which container failed. You can provide the --du-verbose option to dockunit to get even more information.

对于您定义的每个容器,它将运行测试命令并评估退出代码。 如果您所有的容器都没有错误退出,那么您的构建就通过了! 如果不是,则您的代码或如何设置Dockunit都有问题。 输出应告诉您哪个容器失败。 您可以提供--du-verbose选项dockunit以获得更多信息。

Now that we’ve setup our Dockunit.json file and done a test run, push our repository with Dockunit.json to our remote (GitHub for the purposes of this tutorial).

现在,我们已经设置了Dockunit.json文件并进行了测试运行,将带有Dockunit.json的存储库推送到我们的远程Dockunit.json (本教程中为GitHub)。

与Dockunit.io的持续集成 (Continuous Integration with Dockunit.io)

Once we’ve setup Dockunit in a GitHub repository, we can set up continuous integration so Dockunit tests are run on each pull request and push to the repo. If Pull Request or Push fails, a failed status will be shown on GitHub so we can fix our software.

在GitHub存储库中设置Dockunit之后,就可以设置持续集成,以便在每个拉取请求上运行Dockunit测试并推送到存储库。 如果Pull Request或Push失败,则会在GitHub上显示失败状态,以便我们修复软件。

1. 在Dockunit.io上创建一个帐户(1. Create an account on Dockunit.io.)

2.转到项目并将您的帐户与GitHub集成: (2. Go to projects and integrate your account with GitHub:)

Dockunit Authorize GitHub

3.在Dockunit.io中,为您的GitHub存储库创建一个项目(3. Within Dockunit.io, create a project for your GitHub repository:)

Dockunit Create Project

4.就这样! 现在,您可以查看项目的构建状态。 当您推送到GitHub时,它将自动更新: (4. That’s it! You can now see the build status of your project. It will update automatically when you push to GitHub:)

Dockunit Build Status

5.在GitHub中,您可以在每个Pull Request中看到Dockunit构建状态: (5. Within GitHub, you can see the Dockunit build status within each Pull Request:)

Dockunit Pull Request

6.不要忘记将Dockunit.io徽章添加到您的README.md以向人们展示您正在彻底测试软件: (6. Don’t forget to add the Dockunit.io badge to your README.md to show people you are thoroughly testing your software:)

Dockunit Pass Test
Dockunit Pass Test Badge

结论 (Conclusion)

Dockunit testing in combination with Dockunit.io continuous integration is a very powerful tool for ensuring your software works well cross-platform.

Dockunit测试与Dockunit.io的持续集成相结合,是一个非常强大的工具,可确保您的软件跨平台运行良好。

The versatility of Dockunit is endless since it relies on Docker – literally you can test any programming language against any platform; not just WordPress. Using Dockunit also makes testing easy for distributed teams since rather than relying on each developer to set up their local environment properly, you are relying on fixed Docker containers.

Dockunit的多功能性无穷无尽,因为它依赖于Docker –实际上,您可以针对任何平台测试任何编程语言。 不只是WordPress。 使用Dockunit还使分布式团队的测试变得容易,因为您不是依赖每个开发人员来正确设置本地环境,而是依赖固定的Docker容器。

翻译自: https://www.sitepoint.com/wordpress-development-with-dockunit-io/

socket.io开发

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/culi3182/article/details/108378207

智能推荐

socket.io开发_使用Dockunit.io的容器化WordPress开发

socket.io开发Writing WordPress themes and plugins to be publicly distributed requires meeting minimum system requirements, specifically PHP 5.2.4. Since WordPress supports ...

WordPress -- WordPress是一种使用PHP语言开发的博客平台

WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的网志。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在GNU通用公共...

vagaa哇嘎_使用Vagga的容器化PHP开发环境

vagaa哇嘎It happens to all of us once in a while. 它偶尔发生在我们所有人身上。 We clone a project, and then we try to run it. However, something doesn’t work. 我们克隆一个项目,然后尝试运行它。...

WordPress开发入门09:WordPress编码标准

在WordPress Codex上,有一个专门的WordPress编码标准介绍页面: 点我跳转 这里分门别类的介绍了PHP,HTML,CSS和JavaScript等各语言标准。 You must be logged in to view the hidden contents. 点我跳转 当你开始...

超好看的WordPress二次元博客主题Sakurairo v1.20.1

WordPress二次元博客主题Sakurairo v1.20.0 はなあかり Update」 | 一个多彩、实用、易于上手、具有强大自定义功能的WordPress主题(基于Sakura主题)。 使用教程: 1、解压完成后进入 WordPress 后台- > 外观...

从无到有开发自己的Wordpress博客主题---主页模板

在只做完成了header和footer的模板之后,我们首先在之前Hello World的基础上做一个最简单的调用测试 //修改index.php内容如下 <?php get_header(); ?> <h1>Hello World<...是不建议加...

服务器搭建网站完整教程(宝塔面板+wordpress)

宝塔面板添加WordPress站点 一、建站准备条件 条件1:阿里云服务器一台。原则上有台服务器就好了,不过我一般喜欢用大品牌,稳定和安全。 条件2: 阿里云域名一个。在哪家买的服务器,就用哪家的域名,反之,一样...

使用WordPress+mysql 容器搭建博客

国内镜像源: daocloud.io – 当然你可以使用阿里或者豆瓣源 在首页点击镜像市场找到mysql和WordPress的镜像,建议先配置加速器,加快下载速度 mysql 镜像 :docker pull daocloud.io/library/mysql:5.7.6 ...

wordpress主题开发文档.doc

Wordpress主题制作 个人主题的开发记录主要介绍函数的使用 创建主题 在wp-content下面的themes文件夹中创建自己主题的文件夹我的文件夹名称是zingson在文件下面创建style.css文件与index.php文件一个主题中这两个...

wordpress程序搬家

之前使用了西部数码虚拟空间,空间到期后,不打算续费,便将使用的wordpress程序搬家。由于此次搬家,域名不变,而且是将程序搬到独立服务器上,整个流程比较简单。一个小时不够就搞定。 搬家前准备 1、在西部数码...

CSS/HTML wordpress博客宝塔搭建步骤

1.先在WordPress官网下载安装包 网址:WordPress 2.将安装包解压后、上传到服务器的里面(宝塔的更目录下) 3.在宝塔上创建一个新的网站(记住域名) 4.在宝塔上创建一个新的数据库给博客用 5.然后在买的域名...

门外汉学Web开发-WordPress代码导读(3-Admin后台模块之CSS)

刚好看到这里了,开始学习CSS的知识。 路径为:wp-admin\css。清一色的CSS后缀文件。我们可以通过名字来猜用途。...这里就不一一解读了【其实这里好多的CSS文件没有被调用到,可以找个文件名,整个工程所搜一下】。...

服务器搭建网站完整教程(宝塔面板+WORDPRESS)

服务器最大的用途,就是可以搭建网站,许多人都认为搭建网站是一件很难的事情,因为包含许多的比较专业东西,比如服务器、编程之类的,确实,在几年前是这样的,普通人想要自己做一个网站太难了 ...

PHP socket.io使用笔记

下载https://github.com/walkor/phpsocket.io/tree/master/docs/zh 解压 上传到服务器 第二步 启动:linux系统cd到到框架目录里运行php start.php start -d。windows系统进入到框架目录里双击start_for_win.bat文件...

从无到有开发自己的Wordpress博客主题---局部模板的准备

毫无疑问,我们媒体页面都会有header和footer,这些用到的内容几乎是一样的。 从无到有,我们先不考虑后面可能用到的Search和Comment等的模板,后面的我会在文本最后面追加。 开始之前,我们把模板所用到的所有...

使用Bedrock进行现代WordPress开发

If you’re developing WordPress plugins or themes, then you’ve probably heard about Roots.io. It started as a starter theme and evolved into a range of tools. Roots is one of the most complete ...

WordPress官方主题开发文档

http://codex.wordpress.org/zh-cn:主题开发

从无到有开发自己的Wordpress博客主题---运行环境准备

目前只做本地开发,只在本地搭建测试环境,最后会在服务器的CentOS中搭建正式环境,我使用的是Mac,最简单的办法就是安装MAMP。 1、下载并安装MAMP 下载地址:https://www.mamp.info/en/downloads/ 下载完成之后...

BugkuCTF-web-网站被黑 writeup

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 个人收获:御剑拿后台,bp爆破 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 题目描述 解题思路 ...打开链接有...

关于full join 报错的 的问题

在mysql 中写了个小sql 文,但是执行总出错: 创建表的语法是: CREATE TABLE `saledm` ( `saleqty` decimal(10,0) DEFAULT NULL, `sqleamont` decimal(10,0) DEFAULT NULL, `month` int(11) NOT NULL, `culi` ...

WordPress 网站开发“微信小程序“实战(二)

本文是“WordPress 开发微信小程序”系列的第二篇,本文记录的是开发“DeveWork+”小程序v1.1 版本的过程。一如既往,目标读者为了解WordPress 的前端同学。建议先看完第一篇文章再来阅读本文。 如果你没有看过本...

使用宝塔面板搭建个人技术博客网站(wordpress)

宝塔面板添加WordPress站点 一、建站准备条件 条件1:阿里云服务器一台。原则上有台服务器就好了,不过我一般喜欢用大品牌,稳定和安全。 条件2: 阿里云域名一个。在哪家买的服务器,就用哪家的域名,反之,一样...

bbpress 字体_使用bbPress将WordPress转换为功能齐全的论坛

bbpress 字体Even in 2014, forums are still very popular, despite the rising popularity of the newer forms of social networks. The beauty of forums is that they allow for a focused discussion amongst ...

wordpress之模板汉化(poedit的使用技巧 及 .po .mo 批量生成技术)

wordpress的汉化机制 1. 在php文件中,需要汉化的地方使用__()或_e()函数进行标识; 2. 创建.po文件,进行翻译; 3. 将.po文件编译成.mo文件; 4. 向主题中加载.mo文件。__()函数和__e()函数 这两个函数都接收字符串...

【正版免费】WordPress- Sakurairo v1.20.0「桜いろ」主题源码

SAKURAIRO 主题(WordPress主题),一款基于主题 Sakura 的基础上修改的Sakurairo主题! 此主题是官方正版免费主题WordPress- Sakurairo v1.20.0 下载地址: http://www.bytepan.com/5cHulyzVO93 主题使用: 解压...

真正从零开始搭建网站:云服务器+宝塔面板+wordpress(超详细教程)

跟着大佬教程:从零开始用云服务器+宝塔面板+WORDPRESS搭建网站(详细教程),一步步来,最终成功搭建网站! 下面分享我搭建网站的详细过程及一些体会。(其中会参考大佬的一些心得分享及一些格式) 目录 一、...

webdesigner62.github.io:专业的WordPress网站开发人员-源码

webdesigner62.github.io 专业的WordPress网站开发人员

升级WordPress后开启友情链接管理模块

3.5版本取消了链接管理,随着WordPress3.5 Beat1 发布的还有一款插件:Link Manager,这款插件可以重新激活链接管理。只需激活插件,之前熟悉的链接管理就又回来了。 下载解压后,我们得到link-manager.php文件,这...

酱茄WordPress小程序开源版源码 v1.3.5

介绍: 1、酱茄小程序开源版插件功能清单: 1.1、小程序标题设置; 1.2、小程序Logo设置; 1.3、Appid、AppSecret设置; 1.4、评论是否开启设置; 1.5、评论信息是否审核开启设置;...1.6、文章无图默认微缩图设置;...

随便推点

推荐文章

热门文章

相关标签