【问题标题】:Karma e2e test fails with typerrorKarma e2e 测试因类型错误而失败
【发布时间】:2013-06-07 05:08:39
【问题描述】:

我在 app/scripts 下定义了一个相当简约的应用程序(一个控制器,三个指令)。

当 karma 使用 karma start 运行时,我导航到 localhost:9100,单元测试就会运行。但是,当我使用 karma start karma-2e2.conf.js 运行时,运行错误:

    [31mChrome 27.0 (Mac) I haz all the things I haz grid FAILED[39m
TypeError: Cannot read property 'name' of undefined
    Chrome 27.0 (Mac): Executed 1 of 1[31m (1 FAILED)[39m


我的测试在 test/e2e/spec/*.js 下进行

我的 karma-e2e.conf.js 内容如下:

     basePath = '';

    files = [
      ANGULAR_SCENARIO,
      ANGULAR_SCENARIO_ADAPTER,
     'app/components/jquery/jquery.js',
     'app/components/angular/angular.js',
     'test/e2e/**/*.js'
    ];

    proxies = {
      '/' : 'http://localhost:9000'
    }
    exclude = [];

    reporters = ['progress'];

    port = 8080;

    runnerPort = 9100;
    colors = true;

    logLevel = LOG_INFO;

    autoWatch = false;

    browsers = ['Chrome'];

    captureTimeout = 5000;

    singleRun = false;

我的测试是:

 describe('I haz all the things', function(){
   beforeEach(function(){
     browser().navigateTo('/');
   });

  it('I haz grid', function(){
    expect(angular.element('div.grid-item').count).toEqual(1);
  });
  });

为什么会失败,我该如何解决?

【问题讨论】:

  • 您确定您已经发布了我们找到问题原因所需的所有代码吗?该错误涉及未定义对象的“名称”属性-但我看不到您在“它”块中引用任何此类对象...
  • 那是因为我不使用任何对象的名称属性。有点奇怪:/
  • 有什么你想看的代码吗?
  • 必须有一行错误指向 - 我不确定这一点,但与错误一起,它还必须包含遇到错误的行...有什么作为这样的?
  • 不,即使我将日志级别切换到调试也没有

标签: angularjs gruntjs yeoman bower karma-runner


【解决方案1】:

你的测试语法错误

必须是:

expect(repeater('div.grid-item').count()).toEqual(1);

阅读 e2e 领域特定语言...它不是 angular 或 jquery,它有点神秘,但功能强大。

为了更好地调试 e2e 测试,请使用测试运行程序而不是使用 Karma。这是 angular-seed starter 应用程序中包含的名为 runner.html 的文件:

<!doctype html>
<html lang="en">
  <head>
    <title>End2end Test Runner</title>
    <script src="../lib/angular/angular-scenario.js" ng-autotest></script>
    <script src="scenarios.js"></script>
  </head>
  <body>
  </body>
</html>

只需在浏览器中导航到 runner.html,它就会开始在您面前运行您的测试,只需刷新即可重新运行。您可以在测试中添加 pause() ,测试将在该点停止并提示您继续。您可以使用 firebug 或其他调试器查看应用的状态。

【讨论】:

  • 太棒了。谢谢!快速提问,我怎样才能控制台记录事情?或者真的以任何其他方式输出?或者更好地查看测试中给定点的页面状态?
  • 使用测试运行程序而不是使用 Karma 进行 e2e 测试...我将编辑答案。
猜你喜欢
  • 2022-12-16
  • 1970-01-01
  • 2015-11-12
  • 2018-06-29
  • 2023-03-08
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
相关资源
最近更新 更多