2013-05-13 62 views
0

为什么我收到此错误:Selector [ng\:model="query"] did not match any elements选择[NG :模型=“查询”]没有匹配的元素

我已经通过这个阅读:AngularJS: End to End Testing Issue,但这种联系并不真正适用于.NET ENV:

IDE:的Visual Studio 2012
项目类型:ASP.NET MVC4
档案结构:
folder structure

通过因缘运行CI测试开始node.j e2e.conf.js S指令提示

我的人缘的conf:

basePath = '../../../'; 

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

reporters = ['progress']; 

port = 10876; 

runnerPort = 10100; 

colors = true; 

logLevel = LOG_ERROR; 

autoWatch = true; 

browsers = ['Firefox']; 

captureTimeout = 60000; 

singleRun = false; 

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

我的端到端测试:

describe('E2E: AMS', function() { 

    describe('Settings Users', function() { 

     beforeEach(function() { 
      browser().navigateTo('/#/settings/users'); 
     }); 


     it('filters the users list as the user types into the search box', function() { 
      expect(repeater('.users li').count()).toBe(2); 

      input('query').enter('abc'); 
      expect(repeater('.users li').count()).toBe(1); 

      input('query').enter('efg'); 
      expect(repeater('.users li').count()).toBe(1); 

      input('query').enter('ijk'); 
      expect(repeater('.users li').count()).toBe(0); 
     }); 
    }); 
}); 

笔者认为:

<div data-ng-view=""> 

Add User: <br /> 
<input type="text" /> <button>Submit</button><br /> 

Search: 
<input data-ng-model="query" type="text" /> 

Users <br /> 
<ul class="users"> 
    <li data-ng-repeat="user in users | filter:query"> 
     {{user.name}} 
    </li> 
</ul> 

</div> 

和笑容,我的路线

angular.module('AMS', []). 
    config(['$routeProvider', function ($routeProvider) { 
     $routeProvider. 
      when('/login', { templateUrl: '/AccessControl/Login/', controller: settingsController }). 
      when('/dashboard', { templateUrl: '/Dashboard/Dashboard', controller: dashboardController }). 
      when('/settings', { templateUrl: '/Settings/Settings', controller: settingsController }). 
      when('/settings/users', { templateUrl: '/Settings/Users', controller: settingsController }). 
      otherwise({ redirectTo: '/dashboard' }); 
    }]); 

回答

0

它看起来像e2e测试api正在您的视图中查找“ng-model”,而不是您正在使用的“data-ng-model”。

我的理解是两者都是有效的,但试试看看是否是问题所在。

+0

谢谢,我会尝试删除视图上的“数据”部分,因为我不认为我有任何控制角度处理选择器左侧的方式。 – 2013-05-14 02:57:31

+0

用ng-model替换data-ng-model不会改变测试结果。看起来像别的东西正在导致测试失败。我应该提到,这个观点确实按预期工作,它只是失败的测试。 – 2013-05-14 14:53:05

+0

对不起,红鲱鱼。这听起来像你从命令行进行测试。 e2e测试可能更容易从runner文件中调试,如角度种子中的那个:https://github.com/angular/angular-seed/blob/master/test/e2e/runner.html(您可以插入一个暂停()命令在你的测试中,然后检查以确保你处于你期望的状态)。 – 2013-05-15 08:28:46

0

不是一个答案,所以我不会标记它,这是更多的工作。

我决定和chutzpah一起运行茉莉花单元测试,specflow.xunit用于“e2e”测试。它在.net环境中运行良好,并且与teamcity的集成看起来很直接。