【问题标题】:AngularJS and Karma/Jasmine unit tests - folder structure and productionAngularJS 和 Karma/Jasmine 单元测试 - 文件夹结构和生产
【发布时间】:2017-02-10 16:25:04
【问题描述】:

首先,这个问题可能看起来有点愚蠢,对此我深表歉意。

所以我最近开始研究单元测试,用 Karma/Jasmine 做 AngularJS。这太棒了,我非常喜欢它,但我想到了一些事情。

现在 AngularJS 应用程序有一个非常常见的结构,就像在官方种子项目中一样: https://github.com/angular/angular-seed

现在这个还包括单元测试,所有测试文件都位于它们的“本机”角度 JS 文件旁边(因此对于“home.js”控制器文件,您将拥有“home_test.js”)。非常有意义,并且可以更轻松/更快地编写测试和查找测试文件。

但是当我们在服务器上提供 AngularJS 项目时,测试文件也是可用的。这是一种常见的做法吗?这是一件坏事吗?

我能想到的一件事是在 Angular 的“app”文件夹(提供给用户)旁边有一个“tests”文件夹,该文件夹模仿应用程序的文件夹结构,并且测试文件位于那里。但由于某种原因,我在 GitHub 种子和项目中没有看到它。

很想在这里得到一些意见。我可能也错过了什么......

【问题讨论】:

    标签: angularjs unit-testing jasmine karma-jasmine


    【解决方案1】:

    首先,在开发模式(本地)下,您应该使用 grunt、gulp 或其他可以帮助您快速开发应用的构建系统。

    当您使用这些工具时,您告诉他们不要提供某些文件。 这就是为什么你应该给你的测试一个扩展(例如:foobar.controller.spec.js)。这将允许您to tell gulp to ignore .spec.js extensions,然后它们将不会被嵌入。

    对于生产模式,您不会单独提供文件:您将它们连接成一个 app.js 文件。同样,当您构建该文件时,您会告诉构建系统跳过测试文件。

    因此,只需将您的测试保留在应用程序中,给它们一个扩展并告诉您的构建系统忽略它们。

    【讨论】:

    • 跟我想的完全一样!在这里等待回复时,我已经研究过 grunt 来缩小我的东西。非常感谢 Zakaria。
    猜你喜欢
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2016-10-06
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多