我正在嘗試使用 cypress e2e 測驗來測驗我的全堆疊 angular-nestjs-application。
從角度內的服務器呼叫無法到達我正在運行的后端localhost:443(我用 測驗了它0.0.0.0,127.0.0.1就像請求的其他一些答案一樣 - 沒有成功。我也嘗試在我的機器上添加本地代理,就像其他一些帖子建議的那樣 - 再次沒有任何成功) .
另一方面:cy.request('http://localhost:443/...'do 發送的請求實際上到達了我的后端。我能夠發送請求beforeEach,保存回應,攔截真實請求并將保存的回應資料提供給它。
cy.login()做一個登錄呼叫為我的后端建立一個有效的會話。
describe('test', () => {
let data: any;
beforeEach(() => {
cy.login();
cy.request('http://localhost:443/load').then(response => {
data = response;
console.log('BeforeEach Response: ', data);
});
});
it('load data', () => {
cy.visit('/');
});
});

但以下行beforeEach確實有效:
cy.request('http://localhost:443/load').then(response => {
data = response;
console.log('BeforeEach Response: ', data);
});

因此,以下測驗確實完全有效:
describe('test', () => {
let data: any;
beforeEach(() => {
cy.login();
cy.request('http://localhost:443/load').then(response => {
data = response;
console.log('BeforeEach Response: ', data);
});
});
it('load data', () => {
cy.intercept('/load', data);
cy.visit('/');
});
});

那么,使用真實服務器請求成功測驗我的應用程式時,我缺少什么 - 無需手動發送相同的請求并存根真實的請求?
uj5u.com熱心網友回復:
我假設您在 cypress.json 中的 baseUrl 不是localhost:443. 如果是這種情況,那么對于基于 chrome 的瀏覽器,您可以設定chromeWebSecurity為 false。請參閱https://docs.cypress.io/guides/guides/web-security#Set-chromeWebSecurity-to-false。如果這沒有幫助,或者您必須使用 firefox 進行測驗,那么您必須將您的應用程式和所有必需的后端服務放在代理后面,這樣看起來每個請求都由代理提供服務。如果你在開發模式下有 Angular,那么你已經有一個代理,你可以通過proxy.conf.json. 請參閱https://angular.io/guide/build#proxying-to-a-backend-server
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/455841.html
