区分Protractor和Karma测试文件的标准惯例是什么?

时间:2015-03-18 17:07:22

标签: angularjs karma-runner protractor

我是第一次设置Karma和Protractor测试。在John Papa's style guide之后,单元测试文件与他们正在测试的文件一起,例如:login.controller.js, login.controller.spec.js

但是,如果我要添加量角器测试文件,我想将其称为login.spec.js。 (这是登录模块的全部内容)

命名的标准惯例是什么来区分哪些测试文件是Karma单元测试以及哪些是Protractor e2e测试?

2 个答案:

答案 0 :(得分:2)

这不是关于实际的文件名 - 它是关于您的规格所在的

将您的单元测试放在他们正在测试和相关的实际代码附近是一个好主意,让它们靠近"单元"在测试中,原因,这些是单元测试。

另一方面,端到端测试是更高抽象级别的实体 - e2e spec文件应远离实际代码,位于特殊目录中。就个人而言,我喜欢有一个"测试"项目根目录下的文件夹。这是我们已经同意在团队内部的目录结构(简化):

- root
    - src
        - components
            - header
                header-controller.js
                header-controller_test.js
    - test
        - e2e
            - config
                local.conf.js
                remote.conf.js
            - specs
                - screen1
                    screen1.blabla.spec.js
            - po
                screen1.po.js
        karma.local.conf.js
        karma.remote.conf.js

其中specs目录包含所有端到端规范文件,而po - 每个页面的页面对象或应用程序页面的一部分。

答案 1 :(得分:1)

这是基于意见的,但我认为值得回答,因为我过去曾遇到过类似的问题。

根据我的经验,我使用了相同的login.spec.js但在根目录下的e2e文件夹中。

原因是虽然在这种情况下你可能正在为登录模块运行端到端测试,但作为一般规则,端到端测试将跨多个控制器运行集成样式测试/服务/人次。这些测试的性质使得它们难以保持一对一的文件关系,就像您可能使用单元测试一样。

例如,您没有理由不进行登记的量角器测试,然后更改帐户的某些详细信息,然后注销。

在这种情况下,e2e测试对于住在帐户或登录模块目录中是没有意义的。