typescript - Hvorfor virker min intellisense ikke i VS Code for CodeceptJS med playwright?
Jeg forsøger at oprette et øvelsesmiljø for CodeceptJS ved hjælp af TS og Playwright, men af en eller anden grund nægter VSCodes intellisense at vise nogen forslag. Jeg kan manuelt skrive koden, og det fungerer fint, men jeg vil gerne have, at intellisense fungerer.
Jeg har fulgt hurtigstartguiden på CodeceptJS-webstedet til punkt og prikke med følgende trin:
- Åbn mappen og udfør kommandoen
npx create-codeceptjs .dette udfører ennpm initog installerer derefter alle de nødvendige pakker til Codecept og playwright, inden det til sidst udførernpx codeceptjs init, som opretter boilerplate TS-projektet. - I dette projekt har jeg følgende filer:
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 {}
}
}
steps_filer.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"
}
}
login_test.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'
}
Med alt dette som standardfilerne, som du får fra installationen, når du forsøger at kalde en standardmetode fra Playwright amOnPage(); fra I-objektet i codeceptjs i min login_test.ts-fil, får jeg ingen intellisense, der viser de mulige metoder. Jeg har ledt overalt på Google og kan ikke finde en grund til, at dette sker, enhver hjælp vil blive værdsat.
Svar #1
Dette indlæg har et svar, der løste det for mig.
Erstat: interface I extends ReturnType<steps_file> {}
Med: interface I extends ReturnType<steps_file>, WithTranslation<Methods> {}
Intellisense virker ikke for Playwright, REST