【问题标题】:How Does One Manage E2E Testing of a AngularJS WebApp Before Minification?在缩小之前如何管理 AngularJS WebApp 的端到端测试?
【发布时间】:2013-03-28 05:00:00
【问题描述】:

我们正在使用 AngularJS Seed 作为项目模板创建一个 WebApp。有很多控制器、指令、服务,每个都在它自己的 js 文件中。

  • 应用文件夹的内容将使用 Closure 缩小。
  • 所有 lib 依赖项都将通过 CDN 替换为缩小版本。
  • 使用 Testacular/Jasmine 进行单元/e2e 测试。

我不确定典型的开发-编译-测试过程是什么,因为我是 AngularJS 和 Javascript WebApps 世界的新手 :-) 我的问题是如何在开发过程中管理应用程序 js 文件,以便进行 E2E 测试是可调试的。这是我目前的想法;

  1. Testacular 监视源文件以进行连续单元测试。
  2. index.html 页面始终引用连接但未压缩的 js 文件。
  3. 必须先进行编译,然后才能运行/e2e 测试应用。
  4. 构建服务器将作为其活动的一部分进行缩小。

这是一个合理的方法吗?它有助于澄清我正在使用 WebStorm、nodejs 等。

【问题讨论】:

  • 这几乎就是我们采用的方法,只是构建是在提交挂钩上完成的。
  • 我看不出有什么问题。你在使用咕噜声吗?可能有助于管理这一点。
  • 感谢 Roy,缺少一个合适的构建工具。在我对 javascript 的思考中,这是一个范式转变。过去,javascript 的“脚本”部分让我低估了该语言作为大型系统实现中的有力竞争者的价值。不再。 :-)

标签: web-applications angularjs google-closure-compiler webstorm karma-runner


【解决方案1】:

为测试缩小和非缩小源创建单独的配置。

本地:

$ testacular start  
# make some changes
$ minify.sh
$ testacular start testacular-minified.conf.js # you could skip this if you trust your minification

更改后构建服务器:

$ testacular start --no-auto-watch # you could skip this if you trust your minification
$ minify.sh
$ testacular start testacular-minified.conf.js

如果你有 Jasmine 测试和 e2e 测试,你需要有四个配置文件。

【讨论】:

    【解决方案2】:

    感谢所有提供建议的人,他们都帮助我找到了解决方案。流程图(或多或少)描述了一个有效的构建过程。这里的关键是您需要一个构建工具。应该使用构建工具(在本例中为 GruntJS)来管理多个任务的顺序。顺序将根据目标而有所不同,构建工具允许您在许多不同的场景中重用任务。

    对于 AngularJS 应用程序。参考github上的angular-app;

    https://github.com/angular-app/angular-app

    您将找到一个用于实现 Angular 应用程序的参考应用程序。它包含在 Grunt 中实现的用于持续测试、构建和发布的构建过程。更一般地说,这个参考应用程序是实施高度可管理、易于理解的 javascript 项目的极好指南。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 2014-03-20
      • 2015-02-06
      • 1970-01-01
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多