但是,现在我离开那家公司几年之后,我正在考虑在一个零自动化测试的地方再次进行测试,我相信他们会期望我创建适当的自动化(主要是针对网站,而不是网站软件)。每次提交后进行的测试我都不知道从哪里开始。有工具可以帮助您吗?是否需要从头开始编程?我真的不知道这是怎么开始的,甚至还没有我在第一家公司看到的那样。
是否有任何资料可以深入解释整个过程,即每次提交后如何自动运行所有测试,或者至少安排在白天或晚上的特定时间运行测试?
或者我想得太多,这根本没有必要做吗?
#1 楼
不,您没有考虑这个问题。在现代软件开发中,自动化应用程序的测试和部署是关键。它分组在DevOps类别中。测试自动化是其中非常重要的部分。按更改/提交计划的典型测试运行称为持续集成或构建服务器管道。
大多数构建系统也是常规调度程序,它们也可以用于按一定间隔运行测试。
构建服务器管道的流程:
监视版本控制系统中的更改
将更改拉至构建代理
构建源代码
运行单元测试
将应用程序部署到暂存环境
运行集成测试
运行端到端测试
进行静态代码分析(安全性,测试代码覆盖率)
(可选)部署到生产环境。 (称为持续交付/部署)
有很多不同的构建自动化软件产品。有些重量级,有些重量轻,可以在本地完成所有操作。
如果您不是sysadmin类型,我建议您使用基于云的工具,但是如果您想使用服务器,我当然会尝试设置您的系统管理员。从头开始拥有自己的管道。
尽管我偏爱某些工具,但我建议您进行自己的研究,但本文可能是一个不错的开始:https://stackify.com/top-continuous-integration -tools /
其他内容:
https://jenkins.io/pipeline/getting-started-pipelines/
https:// dzone.com/articles/从头开始学习如何设置cicd管道
评论
我要补充一点,对于许多公司来说,云解决方案不是合法的选择,因为代码和/或数据将不受其直接控制。在这种情况下,您需要设置自己的工具链,如今这并不困难。
–弗兰克·霍普金斯
19年4月19日在23:58
#2 楼
现在,在许多组织中,由提交触发的在云中运行测试套件已成为许多组织的普遍做法。每次您推送提交时(通常在分支中,但确实包括主服务器),都必须进行测试。触发运行。
妙处在于它可以在5分钟或更短时间内设置。
基本上现代的工具都内置了此功能。从一个系统中获取API密钥或URL,然后将其添加到为您准备的位置的另一个系统中。
例如:我已经在多个公司和个人项目中使用circlerCI。每次将提交提交到github时,我都会有一个钩子,该钩子也会触发测试在云中运行。
对于circleCI,您创建了一个
.circleci/config
文件,该文件具有构建所需服务器的步骤在github中,您添加了如下所示的webhook
评论
你有没有做过任何研究?有许多这样的系统,从您自己托管的系统(Jenkins,Concourse)到提供服务的系统(Travis,Circle)。大多数支持通过提交或调度程序触发。如果您使用的是.Net,则值得继续阅读Azure DevOps。
### Continuous Integration作为一个广泛的话题,我建议您以自己的起点开始阅读和研究它。当您进行研究并且有更具体的问题时,请将其发布。
您是否已经拥有每晚进行的构建以及相关测试?它们更为重要,但是一旦有了这些基础结构,提交时构建便是相当容易的扩展。我当然不会维护两种不同的设置。