Testing 如何为测试angular应用程序的karma e2e设置jasmine?
我尝试用karma和jasmine创建e2e测试,用yeoman创建。在我的karma-e2e.conf.js中,我添加了jasmine:Testing 如何为测试angular应用程序的karma e2e设置jasmine?,testing,angularjs,jasmine,yeoman,karma-runner,Testing,Angularjs,Jasmine,Yeoman,Karma Runner,我尝试用karma和jasmine创建e2e测试,用yeoman创建。在我的karma-e2e.conf.js中,我添加了jasmine: files = [ JASMINE, JASMINE_ADAPTER, ANGULAR_SCENARIO, ANGULAR_SCENARIO_ADAPTER, 'test/e2e/**/*.js' ]; A需要异步测试,所以我需要使用运行、等待和等待 但如果我尝试使用它: it('test', function () {
files = [
JASMINE,
JASMINE_ADAPTER,
ANGULAR_SCENARIO,
ANGULAR_SCENARIO_ADAPTER,
'test/e2e/**/*.js'
];
A需要异步测试,所以我需要使用运行、等待和等待
但如果我尝试使用它:
it('test', function () {
runs(function () {
...
});
});
Scenatio测试运行程序返回以下内容:
TypeError: Cannot call method 'runs' of null
at runs (http://localhost:8080/adapter/lib/jasmine.js:562:32)
at Object.<anonymous> (http://localhost:8080/base/test/e2e/eduUser.js:42:3)
at Object.angular.scenario.SpecRunner.run (http://localhost:8080/adapter/lib/angular-scenario.js:27057:15)
at Object.run (http://localhost:8080/adapter/lib/angular-scenario.js:10169:18)
我不知道问题出在哪里。你能帮帮我吗?带Karma的角度e2e测试不能使用JASMINE适配器。取而代之的是ANGULAR_SCENARIO_适配器,它与编写Jasmine测试有类似的感觉 适配器中的所有命令都是异步的。例如元素'nav-items'。count不返回数字,它返回一个未来的对象。将来的对象放置在队列中,并随着运行程序的进行异步执行。引述: expectfuture.{matcher}: […]所有API语句都返回一个future对象,该对象在执行后会被赋值 如果您需要运行自己的异步测试代码,您可以扩展适配器的DSL,这比听起来容易。这个想法是,你返回你自己的未来,这可以由托比这样的匹配者来评估。这里有一些关于如何在中执行此操作的示例。记得给donenull打电话,myRetrunValue;当测试代码成功时,myRetrunValue是匹配程序计算的值。或者做了“你自己的错误信息”;如果你想让测试失败 更新:回答下面的问题。要模拟登录,首先在dsl中添加一个名为login的函数: 然后打电话:
beforeEach( function()
{
expect( login('button.login') ).toBeTruthy();
});
使用Karma的角度e2e测试不能使用JASMINE适配器。取而代之的是ANGULAR_SCENARIO_适配器,它与编写Jasmine测试有类似的感觉 适配器中的所有命令都是异步的。例如元素'nav-items'。count不返回数字,它返回一个未来的对象。将来的对象放置在队列中,并随着运行程序的进行异步执行。引述: expectfuture.{matcher}: […]所有API语句都返回一个future对象,该对象在执行后会被赋值 如果您需要运行自己的异步测试代码,您可以扩展适配器的DSL,这比听起来容易。这个想法是,你返回你自己的未来,这可以由托比这样的匹配者来评估。这里有一些关于如何在中执行此操作的示例。记得给donenull打电话,myRetrunValue;当测试代码成功时,myRetrunValue是匹配程序计算的值。或者做了“你自己的错误信息”;如果你想让测试失败 更新:回答下面的问题。要模拟登录,首先在dsl中添加一个名为login的函数: 然后打电话:
beforeEach( function()
{
expect( login('button.login') ).toBeTruthy();
});
谢谢,看起来不错。我需要登录测试应用程序。因此,我想将登录添加到beforeach,并将注销添加到afterEach。登录后,点击我必须等待完成登录过程。你认为这个好方法是什么?@MarekL,我用一个代码示例更新了答案。这个答案对我有帮助,但我仍在努力。我创建了新的下一个问题,谢谢。这看起来不错。我需要登录测试应用程序。因此,我想将登录添加到beforeach,并将注销添加到afterEach。登录后,点击我必须等待完成登录过程。你认为这个好方法是什么?@MarekL,我用一个代码示例更新了答案。这个答案对我有帮助,但我仍在努力。我创建新的下一个问题