mirror of
https://github.com/IT4Change/boilerplate-e2e-cypress-cucumber.git
synced 2025-12-13 04:55:50 +00:00
initial setup and config
This commit is contained in:
parent
7c04c8fb52
commit
77d244570b
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
node_modules/
|
||||||
74
cypress.config.ts
Normal file
74
cypress.config.ts
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
import { defineConfig } from "cypress";
|
||||||
|
import { addCucumberPreprocessorPlugin } from '@badeball/cypress-cucumber-preprocessor';
|
||||||
|
import webpack from '@cypress/webpack-preprocessor';
|
||||||
|
|
||||||
|
// async function setupNodeEvents(
|
||||||
|
// on: Cypress.PluginEvents,
|
||||||
|
// config: Cypress.PluginConfigOptions
|
||||||
|
// ): Promise<Cypress.PluginConfigOptions> {
|
||||||
|
// await addCucumberPreprocessorPlugin(on, config);
|
||||||
|
|
||||||
|
// on(
|
||||||
|
// "file:preprocessor",
|
||||||
|
// preprocessor(config, {
|
||||||
|
// typescript: require.resolve("typescript"),
|
||||||
|
// })
|
||||||
|
// );
|
||||||
|
|
||||||
|
// return config;
|
||||||
|
// }
|
||||||
|
|
||||||
|
const setupNodeEvents = async (on: Cypress.PluginEvents, config: Cypress.PluginConfigOptions) => {
|
||||||
|
await addCucumberPreprocessorPlugin(on, config, {
|
||||||
|
omitAfterRunHandler: true,
|
||||||
|
});
|
||||||
|
on(
|
||||||
|
'file:preprocessor',
|
||||||
|
webpack({
|
||||||
|
webpackOptions: {
|
||||||
|
resolve: {
|
||||||
|
extensions: ['.ts', '.js'],
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.ts$/,
|
||||||
|
exclude: [/node_modules/],
|
||||||
|
use: [
|
||||||
|
{
|
||||||
|
loader: 'ts-loader',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.feature$/,
|
||||||
|
use: [
|
||||||
|
{
|
||||||
|
loader: '@badeball/cypress-cucumber-preprocessor/webpack',
|
||||||
|
options: config,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
return config;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
e2e: {
|
||||||
|
defaultCommandTimeout: 60000,
|
||||||
|
pageLoadTimeout:180000,
|
||||||
|
chromeWebSecurity: false,
|
||||||
|
baseUrl: "http://localhost:3000",
|
||||||
|
specPattern: "cypress/e2e/**/*.feature",
|
||||||
|
supportFile: "cypress/support/e2e.ts",
|
||||||
|
retries: 0,
|
||||||
|
video: false,
|
||||||
|
setupNodeEvents,
|
||||||
|
experimentalInteractiveRunEvents: true,
|
||||||
|
}
|
||||||
|
});
|
||||||
15
cypress/support/e2e.ts
Normal file
15
cypress/support/e2e.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// ***********************************************************
|
||||||
|
// This example support/e2e.ts is processed and
|
||||||
|
// loaded automatically before your test files.
|
||||||
|
//
|
||||||
|
// This is a great place to put global configuration and
|
||||||
|
// behavior that modifies Cypress.
|
||||||
|
//
|
||||||
|
// You can change the location of this file or turn off
|
||||||
|
// automatically serving support files with the
|
||||||
|
// 'supportFile' configuration option.
|
||||||
|
//
|
||||||
|
// You can read more here:
|
||||||
|
// https://on.cypress.io/configuration
|
||||||
|
// ***********************************************************
|
||||||
|
import './commands/commands'
|
||||||
8
cypress/tsconfig.json
Normal file
8
cypress/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es5",
|
||||||
|
"lib": ["es5", "dom"],
|
||||||
|
"types": ["cypress", "node"]
|
||||||
|
},
|
||||||
|
"include": ["**/*.ts"]
|
||||||
|
}
|
||||||
10814
package-lock.json
generated
Normal file
10814
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
50
package.json
Normal file
50
package.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"name": "boilerplate-e2e-cypress-cucumber",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "A boilerplate for end-to-end testing with Cypress and Cucumber in Typescript",
|
||||||
|
"type": "module",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/IT4Change/boilerplate-e2e-cypress-cucumber.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/IT4Change/boilerplate-e2e-cypress-cucumber/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/IT4Change/boilerplate-e2e-cypress-cucumber#readme",
|
||||||
|
"keywords": [
|
||||||
|
"BDD",
|
||||||
|
"cypress",
|
||||||
|
"cucumber",
|
||||||
|
"docker",
|
||||||
|
"eslint",
|
||||||
|
"npm",
|
||||||
|
"nodejs",
|
||||||
|
"typescript"
|
||||||
|
],
|
||||||
|
"author": "mahula",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"scripts": {
|
||||||
|
"cypress:open": "cypress open",
|
||||||
|
"cypress:run": "cypress run"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@badeball/cypress-cucumber-preprocessor": "^19.1.1",
|
||||||
|
"@cypress/webpack-preprocessor": "^6.0.0",
|
||||||
|
"cypress": "^13.5.1",
|
||||||
|
"multiple-cucumber-html-reporter": "^3.5.0",
|
||||||
|
"ts-loader": "^9.5.1",
|
||||||
|
"typescript": "^5.3.2"
|
||||||
|
},
|
||||||
|
"cypress-cucumber-preprocessor": {
|
||||||
|
"nonGlobalStepDefinitions": true,
|
||||||
|
"stepDefinitions": "cypress/e2e/step_definitions/**/*.{js,ts}",
|
||||||
|
"json": {
|
||||||
|
"enabled": true,
|
||||||
|
"output": "cypress/reports/json/cucumber-report.json"
|
||||||
|
},
|
||||||
|
"messages": {
|
||||||
|
"enabled": true,
|
||||||
|
"output": "cypress/reports/messages/cucumber-messages.ndjson"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
tsconfig.json
Normal file
11
tsconfig.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"module": "ES2020",
|
||||||
|
"target": "ES2020",
|
||||||
|
"lib": ["ES2022", "dom"],
|
||||||
|
"strict": true,
|
||||||
|
"types": ["cypress", "node"]
|
||||||
|
},
|
||||||
|
"include": ["**/*.ts"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user