【问题标题】:Error while integrating html with testacularjs将 html 与 testacularjs 集成时出错
【发布时间】:2012-10-22 20:21:43
【问题描述】:

如何将 (html) 固定装置与 testacular 集成?是否有执行基于 DOM 的测试的建议或者它是一种反模式?

目标:我正在尝试测试一个自定义模块,该模块解析 DOM 树并创建一个新的数据结构。 DOM 树可以是动态的(类似于 html/markdown 编辑器的内容),因此不适合进行端到端测试

问题:我正在尝试使用 jasmine-jquery 进行此 DOM 测试,在我的 testacular.conf.js 中,我有允许将 html 文件加载到浏览器中的部分。

// list of files / patterns to load in the browser files = [ JASMINE, JASMINE_ADAPTER, 'test/spec/**/*.js', 'test/fixtures/*.html' **/* Needs to be included here to be served */** ];

但是,在我的命令行测试运行程序中,当我删除 html 夹具时(甚至在我编写任何 jasmine-jquery 代码来加载夹具之前),我收到以下错误消息:

Chrome 22.0 **ERROR** Uncaught SyntaxError: Unexpected token < at /Users/myUser/myProject/test/fixtures/fixture_template.html:1 Chrome 22.0: Executed 0 of 0 ERROR (0.143 secs / 0 secs)

编辑:问同样问题的另一种方式:如何让 testacular 为 html 提供服务而不破坏测试运行器?

正如我上面提到的,我需要在配置中包含“test/fixtures/*.html”,但测试运行器会崩溃。

【问题讨论】:

    标签: unit-testing continuous-integration jasmine fixtures


    【解决方案1】:

    当前版本的 testacularjs 不支持这个。 但是,testacularjs(Vojta Jina) 的作者建议我使用代理解决方案通过不同的 Web 服务器提供 html 来解决此问题。对于那些好奇的人,这里是完成这项工作的端到端步骤。

    • 首先通过运行如下命令来运行网络服务器

      python -m SimpleHTTPServer 3502 &

    • 将您的夹具文件放在适当的位置。我的是 test/fixtures/first.html

      现在您应该可以访问 [http://localhost:3502/test/fixtures/first.html] 并在检查页面源代码时看到标记

    • 编辑 testacular.conf.js 以添加配置块

      
      proxies = {
      '/fixtures' : 'http://localhost:3502/'
      };
      
    • 编辑您的 jasmine 单元测试,使其具有如下所示的块

      
      beforeEach(function(){
              jasmine.getFixtures().fixturesPath = '/fixtures/test/fixtures';
          });
      

    现在您应该可以加载夹具/读取夹具了

    【讨论】:

      【解决方案2】:

      http://testacular.github.com/0.6.0/config/files.html 所述,从 0.5.2 版开始,您可以使用新的配置语法:

      files = [
        JASMINE,
        JASMINE_ADAPTER,
        'test/spec/**/*.js',
        {
          pattern: 'test/fixtures/*.html',
          watched: true,
          included: false,
          served: true
        }
      ];
      

      我刚刚试了一下,效果很好。

      【讨论】:

      • 不错,一直在等这个!
      • +1,但至少在较新的版本中,您还需要编辑包含的预压缩器的默认列表,以便不包含 html2js 之一。
      猜你喜欢
      • 2016-12-11
      • 2011-09-26
      • 2017-09-27
      • 2017-08-06
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      相关资源
      最近更新 更多