asp.net - 持续集成和自动化测试策略

标签 asp.net continuous-integration teamcity

我在一家使用持续集成 (TeamCity) 的公司工作。每次有人在 CI 软件中进行检查时,都会启动构建并运行所有单元/自动测试。问题是我们有超过 7000 个单元测试 + 756 个自动化测试(用于测试 JavaScript,因为我们有一个非常复杂的 UI 逻辑来进行计算等)。每次有人进行检查时,您都可以进行成像,整个过程需要 2 个多小时才能完成所有步骤(构建-unitest-自动化测试),因此我需要等待很长时间才能获得结果以了解是否我的登记可能是自动测试或单元测试中断了。最糟糕的情况是,当不止一个人 checkin 某些东西时,TeamCity 开始排队构建,在我得到有效结果(日期)之前,我可以等待半天!我们应该采取什么策略来加快这个过程?即使有一点变化,它也是运行所有自动化测试的最佳实践吗?

最佳答案

我会考虑以两种方式拆分您的测试套件 - 目标是让您和您的团队可以登记入住,喝杯咖啡,并在您回到办公 table 前从团队城市获得一些有意义的反馈。

  • 决定你真正想在每次提交时测试什么,将剩余的测试移到按预定时间间隔(每小时、每晚 - 任何对你有用的)运行的套件中。
  • 如果同意运行每个提交的测试集仍然很大 - 打破设置并分布在并行运行的多个节点上。

  • 您可能还想增强您的 CI 机器,这取决于您的东西的性质,将测试的工作目录放在 tmpfs(RAM 磁盘)中。

    关于asp.net - 持续集成和自动化测试策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6357599/

    相关文章:

    c# - 每次访问登录表单时 ASP.NET 中的随机图像

    continuous-integration - 如何备份/导出 Gitlab CI 环境变量?

    unit-testing - 如何对 WIX 合并模块进行单元测试?

    git - hudson+git fatal error : Could not apply tag

    python - 通过 teamcity 运行 python 测试 : Error: Source not found

    svn - 我的源代码管理文件在 Linux for TeamCity 中的位置

    c# - 错误 : A const field of a reference type other than string can only be initialized with null

    asp.net - http 和 https 的单独 ASP.NET session ID

    c# - 使用 TeamCity 和 Fakes Framework 构建和测试

    c# - Angular 4 访问数据库模型