GitLab CI使用Googletest自动化单元测试Qt代码

GoogleTest简介 GTest框架谷歌推出的一款C++单元测试框架,基于BSD3协议开源。因为是C++,所以基本上兼容所有系统。 QT项目集成GTest QT Creator自带的Test集成插件可以快速帮助集成QTest或者GTest,虽然QTest是QT自带的测试框架,但是我还是更喜欢使用纯C++的东西。 新建项目->其他项目->Auto Test Project->配置项目TestCase TestSuit->选择GTest根目录 这就是一个完整可以运行的项目了,运行可以看见测试结果。 需要添加新的测试用例可以通过新建测试用例进行测试 TEST(TestSuit,TestCase){ // do some test } 根据自己项目的需求include被测项目header和cpp文件,这样可以将测试代码和要测试的代码一起编译导出。 当然如果被测项目是一个库的话,也是可以使用链接动态库的方式链接,但是这样就无法从单元测试结果获取测试代码覆盖率和分支覆盖率等信息。 如果需要那些信息的话还是建议和单元测试一起编译运行。 ...

六月 23, 2020 · 猫贩子薛定谔

Nginx反向代理Harbor更优雅的使用私有仓库

大部分人拿来当作docker私有仓库的机器可能不止运行Harbor一个程序,因此很有可能80和443端口会被自己安装的Http程序所占用。而如果修改了Harbor的端口的话长长的镜像名字还得带上端口,看起来有点难受。 所以在此情况可以安装Nginx作为端口转发的工具,由他来控制80和443端口的访问。 设置Harbor 因为接下来设置nginx之后可以通过域名来区分入口,不需要依靠端口。就需要把Harbor的hostname修改。 修改harbor.cfg # 不需要加入端口 hostname = docker.domain.com 修改docker-compose.yml #修改proxy节点的port - 8848:80 - 9443:443 接下来重新运行./install.shHarbor不会删除任何数据 完成之后访问docker.domain.com:9443测试能否打开,如果一切正常进行接下来的操作 ...

十月 26, 2018 · 猫贩子薛定谔

使用Harbor建立私有docker仓库

介绍 Harbor harbor是vmware提供的一个开源的企业级docker仓库方案,可以提供跨数据中心的景象同步备份 有很多地方提供免费的docker私有仓库,然而最合理的方式还是保存在自己私有仓库中。 Docker官方的hub也提供免费的私有仓库,但是只提供1个私有仓库。Gitlab也为没给项目提供免费的私有仓库,但是不清楚有什么限制。(Gitlab真有钱,无限免费仓库,2kMin的ci,还有这个貌似无限制的docker私有仓库) 安装registry 如果不需要网页管理什么的直接部署官方的registry容器就行了 ...

十月 24, 2018 · 猫贩子薛定谔

使用Gitlab CI与Maven创建Docker镜像

之前使用了Jenkins作为自动构建工具,然而还是需要自己一台VPS去安装Jenkins软件。 然而Gitlab提供CI/CD服务(Continuous Integration & Deployment)每月有2k Mins的免费额度,如果需要更多的事件可以购买Ultimate或者自己搭建Runner。 同时Gitlab也提供免费的registry,不知道有没有额度限制,直接一条龙服务都提供了(Gitlab 大法好)。除了上次删库的情况也没出现过啥问题,没有私有库数量的限制,拿来专做自己的私有库还是不错滴。 自动化脚本gitlab-ci.yml 创建gitlab-ci.yml保存在项目根目录下编写以下内容 ...

七月 30, 2018 · 猫贩子薛定谔

使用Maven、jenkins、docker实现持续集成

之前使用过jenkins+maven的方法自动构建项目并推送到tomcat的方法–>传送门 由于spring boot/cloud等的微服务的流行,人们更喜欢即开即用的方式。docker作为一个免费开源的容器,越来越多的应用也都会存在一个docker版本(比如jenkins、gitlab)。不过spring boot只需要一句命令就能启动也可以不需要创建一个docker版本。 安装 必须的系统环境: Jdk(推荐还是用Oracle JDK,Jenkins执行编译的过程还是需要Oracle JDK的,方便起见替换掉系统的openjdk) Maven Docker Git Jenkins docker hub 配置 使用docker官方的registry保存镜像,并不知道有没有限制。 创建一个私有Repo,repository的名称将作为镜像的名称 Maven配置 使用Maven构建docker镜像的话需要使用docker-maven-plugin 在pom.xml添加插件和配置信息,根据官方的实例修改配置 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.11</version> <configuration> <!-- 目标位置 --> <serverId>docker-hub</serverId> <!-- 用户名/镜像名 --> <imageName>tusik/web</imageName> <!-- Dockerfile的位置 --> <dockerDirectory>src/main/docker</dockerDirectory> <pushImage>true</pushImage> <!-- 镜像的标签,project.version在properties标签下添加 --> <imageTags> <imageTag>${project.version}</imageTag> <imageTag>latest</imageTag> </imageTags> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <!-- copy the service's jar file from target into the root directory of the image --> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> 根据上面的配置在Maven的setting.xml下添加全局的docker hub信息 ...

七月 29, 2018 · 猫贩子薛定谔