2

我刚刚开始对基于 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'
};
4

3 回答 3

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();

一切都按预期工作。

于 2013-08-28T12:24:02.900 回答
1

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

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

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

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

于 2013-08-28T10:25:11.560 回答
0

你可以评论:

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

或者你可以在你的身体中添加:

<div class='version'></div>
于 2013-11-22T09:05:10.857 回答