Protractor: ์˜ค๋ฅ˜: ์‹œ๊ฐ„ ์ดˆ๊ณผ - jasmine.DEFAULT_TIMEOUT_INTERVAL์— ์ง€์ •๋œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋‚ด์— ๋น„๋™๊ธฐ ์ฝœ๋ฐฑ์ด ํ˜ธ์ถœ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 02์›” 19์ผ  ยท  26์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: angular/protractor

๋‚˜๋Š” " http://www.protractortest.org/#/tutorial "์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

// spec.js
describe('Protractor Demo App', function() {
  it('should have a title', function() {
    browser.get('http://juliemr.github.io/protractor-demo/');

    expect(browser.getTitle()).toEqual('Super Calculator');
  });
});

// conf.js
exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
}

์ด์ œ ๋‹ค์Œ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

protractor conf.js

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฝ˜์†”์— ๋‹ค์Œ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
image

needs more info

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@sallojusuresh , ์•„๋ž˜ ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
jasmineNodeOpts: {
๊ธฐ๋ณธ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ฐ„๊ฒฉ: 2500000
},
์งˆ๋ฌธ - ์œ„์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ 'beforeEach'์—์„œ setTimeout ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  'it'์—์„œ ์ฝœ๋ฐฑ์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„?

๋ชจ๋“  26 ๋Œ“๊ธ€

์•„๋ž˜ ๊ฒŒ์‹œ๋ฌผ์—์„œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๊ฒŒ์‹œ๋ฌผ์„ ์‚ดํŽด๋ณด์„ธ์š”.

https://github.com/angular/protractor/issues/2941#issuecomment -186104304

์…€๋ ˆ๋Š„์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? directConnect ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ?

์˜ค๋ž˜๋œ ๋ฌธ์ œ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ๋‹ค๋ฅธ ๊ฒŒ์‹œ๋ฌผ ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
@juliemr ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ? allScriptsTimeout: 900000์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. defaultTimeoutInterval์„ ๋Š˜๋ ค๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@juliemr ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ScriptsTimeout์„ ๋Š˜๋ ค๋„ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…• ๋ชจ๋‘,

์‹œ๊ฐ„ ์ดˆ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฐ๋„๊ธฐ์—์„œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์กฐ์–ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์˜ค๋ฅ˜: ์‹œ๊ฐ„ ์ดˆ๊ณผ - jasmine.DEFAULT_TIMEOUT_INTERVAL์— ์ง€์ •๋œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋‚ด์— ๋น„๋™๊ธฐ ์ฝœ๋ฐฑ์ด ํ˜ธ์ถœ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

sample_spec.js

describe('Mcac ์•ฑ ํ…Œ์ŠคํŠธ', function() {
browser.get('http://localhost:3000/integrated/myWeb.html');
beforeEach(ํ•จ์ˆ˜(์™„๋ฃŒ) {
window.jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
setTimeout(ํ•จ์ˆ˜() {
console.log('์‹œ๊ฐ„ ์ดˆ๊ณผ');
์™„๋ฃŒ();
}, 50000);
});
//browser.get(' http://localhost:3000/integrated/myWeb.html');
// browser.get('http://localhost:3000/integrated/myWeb.html').then(function() {
it('์ด๋ฉ”์ผ ์ฃผ์†Œ ํ™•์ธ', function()
{

        element(by.model('ctrl.formData.emailAddress')).sendKeys('').clear();
        element(by.model('ctrl.formData.emailAddress')).sendKeys('[email protected]');
        element(by.model('ctrl.formData.emailAddress')).getAttribute('value').then(function (value) {
            expect(value).toEqual('[email protected]');
        });


}, 10000);

// element(by.xpath("//button[text()='ํ™•์ธ']")).click();
๋ธŒ๋ผ์šฐ์ €.์ˆ˜๋ฉด(5000);

});

config.js

// ์˜ˆ์ œ ๊ตฌ์„ฑ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
export.config = {
์ง์ ‘ ์—ฐ๊ฒฐ: ์‚ฌ์‹ค,

// ์›น๋“œ๋ผ์ด๋ฒ„ ์ธ์Šคํ„ด์Šค์— ์ „๋‹ฌ๋  ๊ธฐ๋Šฅ.
๋Šฅ๋ ฅ: {
'๋ธŒ๋ผ์šฐ์ € ์ด๋ฆ„': 'ํฌ๋กฌ'
},

// ์‚ฌ์šฉํ•  ํ”„๋ ˆ์ž„์›Œํฌ. ์ž์Šค๋ฏผ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋ ˆ์ž„์›Œํฌ: '์žฌ์Šค๋ฏผ',

// ์‚ฌ์–‘ ํŒจํ„ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ๋Œ€์ ์ž…๋‹ˆ๋‹ค.
// ๊ฐ๋„๊ธฐ๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
// ์‚ฌ์–‘: ['example_spec.js'],
//์‚ฌ์–‘: ['mcac_spec.js'],
//์‚ฌ์–‘: ['mcac_spec_mobile.js'],
์‚ฌ์–‘: ['mcac_online.js'],
// Jasmine์— ์ „๋‹ฌํ•  ์˜ต์…˜.
jasmineNodeOpts: {
๊ธฐ๋ณธ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ฐ„๊ฒฉ: 5000
}

};

๋งŽ์€ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๋ฐ˜๋ณต๋˜๋Š” $timeout ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค( $timeout ๋Š” ๊ฐ๋„๊ธฐ๋ฅผ ์ฐจ๋‹จํ•˜์ง€๋งŒ $interval ๋Š” ์ฐจ๋‹จํ•˜์ง€ ์•Š์Œ).

๋ฐ˜๋ณต๋˜๋Š” $timeout์„ ์ฐพ์œผ๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ๋„๊ธฐ์˜ ์š”์†Œ ํƒ์ƒ‰๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ protractor config/protractor.js --elementExplorer
Starting debugger agent.
Debugger listening on port 5858
> var body = element(by.css('body'))
> body.isPresent()
ScriptTimeoutError: Timed out waiting for asynchronous Angular tasks to finish after 15 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular
While waiting for element with locator - Locator: By(css selector, body). 
The following tasks were pending:
 - $timeout: function () {
        // ......
    }

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. URL ๋กœ๋”ฉ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ 
html ํŽ˜์ด์ง€์˜ ng-app ํƒœ๊ทธ

์นœ์• ํ•˜๋Š”,
๋‚˜๋ Œ๋“œ๋ผ

๋‚˜๋ Œ๋“œ๋ผ...!

2016๋…„ 12์›” 15์ผ 06:12์— Amy Boyd [email protected] ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๋ฐ˜๋ณต๋˜๋Š” $timeout($timeout
$interval์€ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ๋ฐ˜๋ฉด ๊ฐ๋„๊ธฐ๋Š” ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ณต๋˜๋Š” $timeout์„ ์ฐพ์œผ๋ ค๋ฉด ๊ฐ๋„๊ธฐ์˜ ์š”์†Œ ํƒ์ƒ‰๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด:

$ ๊ฐ๋„๊ธฐ config/protractor.js --elementExplorer
๋””๋ฒ„๊ฑฐ ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
ํฌํŠธ 5858์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜๋Š” ๋””๋ฒ„๊ฑฐ

var ๋ณธ๋ฌธ = ์š”์†Œ(by.css('๋ณธ์ฒด'))
body.isPresent()
ScriptTimeoutError: 15์ดˆ ํ›„์— ๋น„๋™๊ธฐ Angular ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋Š” ๋™์•ˆ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ Angular ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ FAQ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting -for-angular
๋กœ์ผ€์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์š”์†Œ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ - ๋กœ์ผ€์ดํ„ฐ: By(css ์„ ํƒ๊ธฐ, ๋ณธ๋ฌธ).
๋‹ค์Œ ์ž‘์—…์ด ๋ณด๋ฅ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • $timeout: ํ•จ์ˆ˜() {
    // ......
    }

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/angular/protractor/issues/2963#issuecomment-267302567 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AViSFkiN29oWnH6AJ0P_wNY_LNzE2fglks5rISCYgaJpZM4Hd20v
.

์•ˆ๋…• ๋ชจ๋‘,

์‹œ๊ฐ„ ์ดˆ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฐ๋„๊ธฐ์—์„œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์กฐ์–ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์‹คํŒจ: ๋น„๋™๊ธฐ Angular ์ž‘์—…์ด 30์ดˆ ํ›„์— ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋Š” ๋™์•ˆ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ Angular ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@sallojusuresh , ์•„๋ž˜ ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
jasmineNodeOpts: {
๊ธฐ๋ณธ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ฐ„๊ฒฉ: 2500000
},
์งˆ๋ฌธ - ์œ„์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ 'beforeEach'์—์„œ setTimeout ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  'it'์—์„œ ์ฝœ๋ฐฑ์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„?

๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ ์ณค๋‹ค

 var originalTimeout;

    beforeEach(function() {
        originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
        jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
    });

    afterEach(function() {
      jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
    });

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ Œ๋“œ๋ผ...!

2018๋…„ 3์›” 11์ผ 23:53, Md. Zahirul Haque [email protected]
์ผ๋‹ค:

๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ ์ณค๋‹ค

` var originalTimeout;

beforeEach(ํ•จ์ˆ˜() {
originalTimeout = ์žฌ์Šค๋ฏผ.DEFAULT_TIMEOUT_INTERVAL;
์žฌ์Šค๋ฏผ.DEFAULT_TIMEOUT_INTERVAL = 10000;
});

AfterEach(ํ•จ์ˆ˜() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = ์›๋ž˜ ์‹œ๊ฐ„ ์ดˆ๊ณผ;
});`

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/angular/protractor/issues/2963#issuecomment-372187210 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AViSFg7ITAW3XW5zky_-QXXmAudt11qDks5tdfE1gaJpZM4Hd20v
.

@NickTomlin ๋‹น์‹ ์€ ๋ฐฉ๊ธˆ ํ•˜๋ฃจ๋ฅผ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค :) ๋‚˜๋Š” directconnect๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. directconnect๊ฐ€ ์‹ค์ œ๋กœ ํ•˜๋Š” ์ผ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„์˜ ๋น›์„ ๋น„์ถ”๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•„์ž์˜ ๊ฒฝ์šฐ ์ด ์˜ค๋ฅ˜๋Š” "fixture.detectChanges()"์˜ ๋ถ€์ ์ ˆํ•œ ์‚ฌ์šฉ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ฐ์ง€๋  ๋•Œ๋งŒ ์ฝœ๋ฐฑ์— ์‘๋‹ตํ•˜๋Š” ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ(๋น„๋™๊ธฐ)์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ฐ์ง€๋˜์ง€ ์•Š์œผ๋ฉด ์ฝœ๋ฐฑ์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค :)

@juliemr ์‹œ๊ฐ„ ์ดˆ๊ณผ - jasmine.DEFAULT_TIMEOUT_INTERVAL์—์„œ ์ง€์ •ํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋‚ด์— ๋น„๋™๊ธฐ ์ฝœ๋ฐฑ์ด ํ˜ธ์ถœ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ํ…Œ์ŠคํŠธ์—์„œ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ด ์˜ค๋ฅ˜๋Š” ๊ฐ๊ฐ ์ด์ „์—, ๊ฐ๊ฐ ์ดํ›„์—, browser.sleep์—์„œ ์žฌ์Šค๋ฏผ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ฐ„๊ฒฉ์„ 100000๊นŒ์ง€ ์ฆ๊ฐ€์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ œ์•ˆํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์žฌ์Šค๋ฏผ ์ œํ•œ ์‹œ๊ฐ„์„ ์ตœ๋Œ€ 300000์œผ๋กœ ๋Š˜๋ฆฌ๋Š” ๋™์•ˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ pls๋Š” ์ด์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๊ฐ๋„๊ฐ€ ์•„๋‹Œ ์•ฑ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋Š” ๊ฒฝ์šฐ node_modules/protractor/built์—์„œ runner.js๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
waitForAngularEnabled๋กœ ๋ผ์ธ # 210 ํŽธ์ง‘: false //true

@juliemr ์ด ์„ค์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

onPrepare() ์„น์…˜์—์„œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

onPrepare: async () => {
    await browser.waitForAngularEnabled(false);
    ....
}

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์—ฌ๊ธฐ์— ์ œ๊ณต๋œ ์†”๋ฃจ์…˜์ด ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์žˆ์œผ๋ฉด ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์— ๋Œ€ํ•œ ๋‚ด ์งˆ๋ฌธ์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. ๋ฌธ์ œ๋Š” ์‰ฝ๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ repo๊ฐ€ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค.
https://stackoverflow.com/questions/53786401/error-debugging-protractor-with-node-8-async-await-and-angular-6

false๊ฐ€ true์™€ ๊ฐ™์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ ์ด์œ : ์ฝ˜์†”์— ์˜ค๋ฅ˜ ๋กœ๊ทธ๊ฐ€ ์žˆ์Œ:Entry {
์ˆ˜์ค€: ์ˆ˜์ค€ { ์ด๋ฆ„_: '์‹ฌ๊ฐ', ๊ฐ’_: 1000 },
๋ฉ”์„ธ์ง€:
"์˜ค๋ฅ˜" ์˜ค๋ฅ˜: formGroup์€ FormGroup ์ธ์Šคํ„ด์Šค๋ฅผ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋ฅผ ์ „๋‹ฌํ•˜์‹ญ์‹œ์˜ค.\n\n ์˜ˆ:\n\n \n

\N \N
\n\n ํด๋ž˜์Šค์—์„œ:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });\n Function.e.missingFormException์—์„œ

ํŒ์—… ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฒŒ์‹œ๋ฌผ์— ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐ€์ ธ์˜ค๊ธฐ์— HttpClientModule์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

beforeEach(() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

๊ฒŒ์‹œ๋ฌผ์— ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐ€์ ธ์˜ค๊ธฐ์— HttpClientModule์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

beforeEach(() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

๊ฐœ์ธ์ ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฒ ๋“œ ๋‚ด์—์„œ HttpClientModule์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์—์„œ API๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์€ HttpClientTestingModule์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@sallojusuresh , ์•„๋ž˜ ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
jasmineNodeOpts: {
๊ธฐ๋ณธ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ฐ„๊ฒฉ: 2500000
},
์งˆ๋ฌธ - ์œ„์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ 'beforeEach'์—์„œ setTimeout ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  'it'์—์„œ ์ฝœ๋ฐฑ์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„?

์ด๊ฒƒ์€ ๊ฐ€์žฅ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋ฅผ ur ๊ตฌ์„ฑ ํŒŒ์ผ์— ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰