使用Angular Scenario测试“任何网页”

时间:2013-09-14 15:11:41

标签: javascript angularjs dojo karma-runner

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

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

换句话说,它是非常通用的并非“真正”与角色相关吗?

我正在用自耕农写一个angularJs应用程序,而且我喜欢ng2es测试完成的方式。

我有另一个应用程序,不是以角度编写的,而是在道场中,我想以同样的方式测试它。

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

谢谢!

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

2 个答案:

答案 0 :(得分:2)

因此很容易实现。你只需要

1 /安装业力

  

npm install -g karma

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

npm install ng-scenario

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

3 /如果需要代理,则创建/修改karma e2e配置。情况就是这样     通常,dojo运行在与业力不同的服务器上。那么你     为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. 您使用端到端配置运行业力
  2. 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 );
       } );
    
    } );
    

答案 1 :(得分:0)

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

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