typescript - Miért nem működik az Intellisense a VS Code-ban a CodeceptJS Playwright használatakor?
Megpróbálok létrehozni egy gyakorló környezetet a CodeceptJS számára TS és Playwright használatával, de valamiért a VSCode intellisense nem hajlandó javaslatokat mutatni. Manuálisan be tudom gépelni a kódot, és az rendben van, működik, de szeretném, ha az intellisense működne.
A CodeceptJS weboldal gyorsindító útmutatóját betű szerint követtem a következő lépésekkel:
- Nyisd meg a könyvtárat és hajtsd végre a parancsot
npx create-codeceptjs ., ez végrehajt egynpm init-et, majd telepíti az összes szükséges csomagot a Codecept és a Playwright számára, mielőtt végül végrehajtja anpx codeceptjs init-et, amely létrehozza az alap TS projektet. - Ebben a projektben a következő fájljaim vannak:
tsconfig.json
{
"ts-node": {
"files": true
},
"compilerOptions": {
"target": "es2018",
"lib": ["es2018", "DOM"],
"esModuleInterop": true,
"module": "commonjs",
"strictNullChecks": false,
"types": ["codeceptjs", "node"],
"declaration": true,
"skipLibCheck": true
},
"exclude": ["node_modules"]
}
steps.d.ts
/// <reference types='codeceptjs' />
type steps_file = typeof import('./steps_file');
declare namespace CodeceptJS {
interface SupportObject { I: I, current: any }
interface Methods extends Playwright {}
interface I extends ReturnType<steps_file> {}
namespace Translation {
interface Actions {}
}
}
lépések_fájlok.ts
// in this file you can append custom step methods to 'I' object
module.exports = function() {
return actor({
// Define custom steps here, use 'this' to access default methods of I.
// It is recommended to place a general 'login' function here.
});
}
package.json
{
"name": "codeceptjs-tests",
"version": "0.1.0",
"private": true,
"scripts": {
"codeceptjs": "codeceptjs run --steps",
"codeceptjs:headless": "HEADLESS=true codeceptjs run --steps",
"codeceptjs:ui": "codecept-ui --app",
"codeceptjs:demo": "codeceptjs run --steps -c node_modules/@codeceptjs/examples",
"codeceptjs:demo:headless": "HEADLESS=true codeceptjs run --steps -c node_modules/@codeceptjs/examples",
"codeceptjs:demo:ui": "codecept-ui --app -c node_modules/@codeceptjs/examples"
},
"devDependencies": {
"@codeceptjs/configure": "^0.10.0",
"@codeceptjs/examples": "^1.2.1",
"@codeceptjs/ui": "^0.5.0",
"@types/node": "^20.0.0",
"codeceptjs": "^3.4.1",
"playwright": "^1.33.0",
"ts-node": "^10.9.1",
"typescript": "^5.0.4"
}
}
bejelentkezés_teszt.ts
Feature('login');
Scenario('test something', ({ I }) => {
});
codecept.conf.ts
import { setHeadlessWhen, setCommonPlugins } from '@codeceptjs/configure';
// turn on headless mode when running with HEADLESS=true environment variable
// export HEADLESS=true && npx codeceptjs run
setHeadlessWhen(process.env.HEADLESS);
// enable all common plugins https://github.com/codeceptjs/configure#setcommonplugins
setCommonPlugins();
export const config: CodeceptJS.MainConfig = {
tests: './*_test.ts',
output: './output',
helpers: {
Playwright: {
url: 'https://www.saucedemo.com',
show: true,
browser: 'chromium'
}
},
include: {
I: './steps_file'
},
name: 'CodeceptJS'
}
Mindezeket figyelembe véve, amelyek az alapértelmezett fájlok, amelyeket a telepítéskor kapunk, amikor megpróbálok egy szabványos metódust hívni a Playwright amOnPage(); metódusból a codeceptjs I objektumán a login_test.ts fájlomban, nem kapok semmilyen intellisense-t a lehetséges metódusok megjelenítéséhez. Mindenhol kerestem a Google-on, és nem találok okot arra, hogy miért történhet ez, bármilyen segítséget értékelnék.
Válasz #1
Ennek a bejegyzésnek van egy válasza, ami megoldotta a problémámat.
Cseréld: interface I extends ReturnType<steps_file> {}
With: interface I extends ReturnType<steps_file>, WithTranslation<Methods> {}
Az Intellisense nem működik a Playwright és a REST esetében