【问题标题】:AngularJS : Running e2e tests using KarmaAngularJS:使用 Karma 运行 e2e 测试
【发布时间】:2013-05-25 21:35:14
【问题描述】:

我想使用 KarmaJS (0.9.2) 运行我的 Jasmine e2e 测试。我在 Windows 7 上使用带有 AngularJS (1.0.7) 的 Google Closure。当我使用 karma start config\karma-e2e.js 开始业力时,一切正常(浏览器导航到正确的页面)但它不执行我的测试(在“浏览器导航到”处停止) .

config\karma-e2e.js 文件:

basePath = '../';

frameworks = ['ng-scenario'];

files = [
  'tests/e2e/**/*.js'
];

autoWatch = true;

singleRun = false;

browsers = ['Chrome'];

urlRoot = '/__karma/';

proxies = {
    '/': 'http://localhost:8080/'
}

plugins = [
    'karma-ng-scenario'
    'karma-chrome-launcher'
]

测试源(tests\e2e\scenarios.coffee)是:

describe 'Intro page view', ->

  it 'has hello world message', ->
    browser().navigateTo '/app/client/'
    expect(element('#text').text()).toBe 'Hello World'

我正在使用 html5Mode 路由,使用 angular.bootstrap 手动引导 Angular,我所有的咖啡脚本都是由 IDE 编译的,我在浏览器控制台或命令行中看不到任何错误。那么我该怎么做呢?我做错了吗?

谢谢!

【问题讨论】:

    标签: testing angularjs karma-runner end-to-end


    【解决方案1】:

    我解决了这个问题。似乎角度场景需要 ng-app 指令,这至少很奇怪(或者它是一个错误)。所以我在索引页面上调用 App.bootstrap() 后将 ng-app 属性添加到正文。现在一切正常。

    <script type="text/javascript">
    App.bootstrap();
    document.body.setAttribute('ng-app', 'App');
    </script>
    

    【讨论】:

    • +1 我花了一个小时试图弄清楚为什么测试没有完成。
    • 正确。 “ngScenario 不适用于使用 angular.bootstrap 手动引导的应用程序。您必须使用 ng-app 指令。” - docs.angularjs.org/guide/dev_guide.e2e-testing 在底部,就在 cmets 之前。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多