【问题标题】:Angular Test tutorials on Jasmine website not workingJasmine 网站上的 Angular 测试教程不起作用
【发布时间】:2013-08-31 07:04:40
【问题描述】:

我刚刚开始对基于 Jasmine 的 angular-seed 应用程序进行实践测试。当使用在pivotal.github.io/jasmine/ 上找到的第一个测试示例时,它在我的应用程序上失败了。

测试示例代码:

describe("A suite", function() {
  it("contains spec with an expectation", function() {
    expect(true).toBe(true);
  });
});

但传递tryjasmine.com

我对内容和视图/部分进行了测试,它们通过了。但茉莉花网站上的那个失败了。是我遗漏了什么还是需要设置一些配置?

Karma.conf.js 文件:

basePath = '../';

files = [
  JASMINE,
  JASMINE_ADAPTER,
  'app/lib/angular/angular.js',
  'app/lib/angular/angular-*.js',
  'test/lib/angular/angular-mocks.js',
  'app/js/**/*.js',
  'test/unit/**/*.js'
];

autoWatch = true;

browsers = ['Chrome'];

junitReporter = {
  outputFile: 'test_out/unit.xml',
  suite: 'unit'
};

Karma-e2e.conf.js 文件:

basePath = '../';

files = [
  ANGULAR_SCENARIO,
  ANGULAR_SCENARIO_ADAPTER,
  'test/e2e/**/*.js'
];

autoWatch = false;

browsers = ['Chrome'];

singleRun = true;

proxies = {
  '/': 'http://localhost:8000/'
};

junitReporter = {
  outputFile: 'test_out/e2e.xml',
  suite: 'e2e'
};

【问题讨论】:

  • 你在使用 Karma。如果是这样,请将您的 karma.conf.js 设置与您的问题放在一起。
  • 测试失败了吗?或者它根本不运行?你看到 Jasmine 结果屏幕了吗?我猜你还没有初始化 Jasmine。您是否包含此代码? pivotal.github.io/jasmine/#section-The_Runner_and_Reporter
  • @BKM 添加了 karma.conf 代码
  • @D'loDeProjuicer 配置文件没问题
  • @BrianGenisio 我发现初始化 Jasmine 所需的文件之一有问题。在文档的 Runner 和 Reporter 部分有:document.querySelector('.version').innerHTML = jasmineEnv.versionString(); browser console throws an error about the .innerHTML

标签: unit-testing angularjs jasmine


【解决方案1】:

您正在使用旧业力的配置风格。我看到两个选项

1) 你有相当旧的业力版本,

2) 你正试图在旧的配置风格上运行新的业力。

您应该尝试将 karma 升级到最新版本并将配置迁移到新样式,请参阅:http://karma-runner.github.io/0.10/config/configuration-file.html

【讨论】:

  • 我更新了配置,但这不是问题。但感谢您让我注意到这一点。
【解决方案2】:

根据文档 Runner 和 Reporter 部分的http://pivotal.github.io/jasmine/#section-The_Runner_and_Reporter,有:

document.querySelector('.version').innerHTML = jasmineEnv.versionString();

浏览器控制台报错

Uncaught TypeError: Cannot set property 'innerHTML' of null

环顾四周后,我发现其他示例没有该行。我用了 tuts+ http://net.tutsplus.com/tutorials/javascript-ajax/testing-your-javascript-with-jasmine/中的例子

在那个教程中有SpecRunner.html 它有没有document.querySelector('.version').innerHTML = jasmineEnv.versionString(); 的代码块

一切都按预期进行。

【讨论】:

    【解决方案3】:

    您可以发表评论:

    document.querySelector('.version').innerHTML = jasmineEnv.versionString();
    

    或者你可以在你的正文中添加:

    <div class='version'></div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 2016-05-14
      • 2017-05-25
      • 2019-03-26
      • 2020-11-20
      • 1970-01-01
      • 2017-07-23
      相关资源
      最近更新 更多