2013-05-13 4 views
0

Почему я получаю эту ошибку: Selector [ng\:model="query"] did not match any elementsселектор [нг : модель = «запрос»] не найдено ни одного элемента

Я прочитал это: AngularJS: End to End Testing Issue, но ссылка не реально применять в .net окр:

IDE: Visual Studio 2012
Тип проекта: ASP.NET MVC4
strucure Файл:
folder structure

Запуск тестов CI через карму начинают e2e.conf.js в node.j s командной строки

Моя карма конф:

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/' 
}; 

Мой e2e тест:

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

Спасибо, я попытаюсь удалить часть «данных» на представлении, так как я не думаю, что у меня есть контроль над тем, как угловой обрабатывает левую часть селектора. –

+0

заменяя data-ng-модель на ng-модель, не изменил результат теста. Похоже, что что-то другое приводит к сбою теста. Я должен упомянуть, что представление работает так, как ожидалось, его единственный тест, который терпит неудачу. –

+0

Извините, красная сельдь. Похоже, вы тестируете из командной строки. Тест e2e может быть проще отлаживать из файла бегуна, такого как в угловом семя: https://github.com/angular/angular-seed/blob/master/test/e2e/runner.html (вы можете вставить паузу() в середине вашего теста, а затем убедитесь, что вы находитесь в состоянии, которое вы ожидаете). –

0

Не ответ, поэтому я не буду отмечать его как таковой, это скорее работа.

Я решил пойти с chutzpah, чтобы запустить тесты жасминового блока, и specflow.xunit для тестирования «e2e». Он хорошо работает в среде .net, и интеграция в teamcity кажется прямой.