3

我想知道是否可以使用角度场景测试器(和业力)测试任何网页。

或者它是否设计为仅适用于角度源代码?

换句话说,它是通用的而不是“真正”与角度相关的吗?

我正在用 yeoman 编写一个 angularJs 应用程序,我喜欢通过 ngResource 完成 e2e 测试的方式。

我有另一个应用程序,不是用 Angular 编写的,而是用 dojo 编写的,我想以同样的方式对其进行测试。

你认为这是可能的吗?如果是的话,你对如何做有什么建议?

谢谢!

注意:实际上测试的网页中是否有一些角度代码,所以这个问题是有道理的。casperJs 或 selenium 等工具独立于页面中的 js 技术。

4

2 回答 2

2

所以很容易实现。您只需要

1/ 安装业力

npm install -g 业力

2/ 安装 ng-scenario 和 karma-ng-scenario 的依赖项

npm install ng-scenario

npm install karma-ng-scenario --save-dev

3/ 如果需要代理,则创建/修改 karma e2e 配置。通常是这种情况,因为 dojo 运行在与 karma 不同的服务器上。因此,您为 karma 指定特定端口并代理到您的服务器。这是我的配置示例:

module.exports = function(config) { config.set({ // 基本路径,将用于解析文件并排除 basePath: '',

// testing framework to use (jasmine/mocha/qunit/...)
frameworks: ['ng-scenario'],

// list of files / patterns to load in the browser
files: [
   'https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js',
  'test/e2e/**/*.js'
],

// list of files / patterns to exclude
exclude: [],

// web server port
port: 8033,

runnerPort : 9100,

// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: config.LOG_INFO,


// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,


// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers: ['Chrome'],


// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false,

// Uncomment the following lines if you are using grunt's server to run the tests
proxies: {
   '/': 'http://localhost:8080/'
}, //    URL root prevent conflicts with the site root
urlRoot: '_karma_'   }); };
  1. 您使用端到端配置运行业力
karma start karma-e2e.conf.js

魔术,以下代码有效 - 快乐测试:)

describe ( 'Publications', function ()
{
   beforeEach (
      function ()
      {
         console.log ( "before each" );
         browser ().navigateTo ( "yourPageToTestUrl" );
      }
   );

   it ( 'should filter results', function ()
   {
      expect ( repeater ( '.Publication' ).count () ).toEqual ( 4 );
   } );

} );
于 2013-09-17T17:14:35.803 回答
0

请注意,一些测试代码会起作用(例如计算元素),而另一些则不会(例如设置一个不是由 Angular 提供的输入)。

这是一个尝试使 ngScenarios 与任何 JS 工具一起工作的工具:http: //davidb583.github.io/BlackboxJS

于 2014-01-23T16:57:31.573 回答