0

このエラーが発生する理由:Selector [ng\:model="query"] did not match any elements

私はこれを読みました: AngularJS: End to End Testing Issue、しかしそのリンクは .net env では実際には適用されません:

IDE: Visual Studio 2012
プロジェクトの種類: ASP.NET MVC4
ファイル構造:
フォルダ構造

node.js コマンド プロンプトで karma start e2e.conf.js を介して CI テストを実行する

私のカルマ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/'
};

私の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' });
  }]);
4

2 に答える 2

0

angular e2e テスト API は、使用している「data-ng-model」ではなく、ビューで「ng-model」を探しているようです。

私の理解では、どちらも有効ですが、それが問題かどうかを確認してみてください。

于 2013-05-14T01:36:57.700 に答える
0

答えではないので、そのようにマークしません。これは回避策です。

jasmine 単体テストを実行するために chutzpah を使用し、「e2e」テストには specflow.xunit を使用することにしました。それは .net 環境でうまく機能し、teamcity への統合は簡単に思えます。

于 2013-05-20T15:06:58.840 に答える