为Javascript项目设置实习生

时间:2013-05-19 16:24:18

标签: javascript intern

我知道已经回答了几个类似的问题(Testing custom JavaScript (not Node module) with InternCan't get Intern to run Node.js Module),但即使阅读了这些答案,我仍然无法使用实习生进行一些简单的测试。我觉得只有一件我忽略或丢失的小件。

我正在尝试评估Intern以用于现有的Javascript项目。它不是一个Node项目,只是简单的Javascript。如果重要,我试图在Windows机器上执行此评估。

  1. 我的项目层次结构如下所示:

    APEFIntern/
        apeform/
            test/
                intern.js      - Intern configuration
                spec_inwf.js   - Tests for inwf
            inwf.js            - Code to test
        intern/
    
  2. 实习配置文件:

    // ...
    
    // Configuration options for the module loader; any AMD configuration options supported by the Dojo loader can be
    // used here
    loader: {
        // Packages that should be registered with the loader in each testing environment
        //packages: [ 'apeform' ]
    },
    
    // Non-functional test suite(s) to run in each browser
    suites: [ 'apeform/test/spec_inwf' ],
    
    // ...
    

    我是Node和AMD的新手,但我相信由于我的项目不是节点项目,我不需要使用loader.packages配置吗?

  3. 测试文件spec_inwf.js

    define([
    'intern!bdd',
    'intern!chai!expect',
    'apeform/inwf.js'
    ], function (bdd, expect) {
        with (bdd) {
            describe("inwf suite", function () {
                // Tests
            });
        }
    });
    
  4. 我执行以下命令尝试运行测试:

    node client.js config=apeform/test/intern
    

    我从命令收到的唯一输出是:

    Defaulting to "console" reporter
    
  5. 如果我在Intern配置中将suites数组设置为空,当我在#4中执行命令时,我收到消息“0/0 tests passed”。我相信这是正确的输出。但每当我尝试连接到测试套件时,测试都不会运行。我不确定在这个等式中我还缺少什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的spec_inwf.js测试文件中的语法问题似乎很小:

'intern!chai!expect',

应该是

'intern/chai!expect',

其他一切看起来都不错。

注意:如果您的项目不是Node项目,那么关于不需要使用loader.packages配置的声明并不准确。但是,您不需要在此特定情况下使用您提供的文件结构。 The amdjs packages documentation可能值得阅读,以便更好地理解此配置选项,因为它是特定于AMD的,而非特定于实习生。希望这会有所帮助。