cucumber-js icon indicating copy to clipboard operation
cucumber-js copied to clipboard

Module not found when I run cucumber js test - ERR_MODULE_NOT_FOUND

Open Ali-Kent opened this issue 6 months ago • 0 comments

Hello, I installed cucumber-js and tsflow on a React Native mobile app project. After writing a ".feature" file and its corresponding steps definition file for a user story, I get an error when I run the test script. Here's the error:


Error: Cannot find package '@/src' imported from C:\Users\Invité\Documents\code\sychus\sychus-mobile\tests\acceptance\features\step-definitions\search-housing.steps.ts
    at Object.getPackageJSONURL (node:internal/modules/package_json_reader:268:9)
    at packageResolve (node:internal/modules/esm/resolve:768:81)
    at moduleResolve (node:internal/modules/esm/resolve:854:18)
    at defaultResolve (node:internal/modules/esm/resolve:984:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:780:12)
    at ModuleLoader.#cachedDefaultResolve (node:internal/modules/esm/loader:704:25)
    at ModuleLoader.#resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:739:38)
    at ModuleLoader.resolveSync (node:internal/modules/esm/loader:762:52)
    at ModuleLoader.#cachedResolveSync (node:internal/modules/esm/loader:723:25)
    at ModuleLoader.getModuleJobForRequire (node:internal/modules/esm/loader:451:50) {
  code: 'ERR_MODULE_NOT_FOUND'
}

Here's the error when I use import with relative path :

Error: Cannot find module 'C:\Users\Invité\Documents\code\sychus\sychus-mobile\src\interface-adapters\gateways\InMemoryHousingGateway' imported from C:\Users\Invité\Documents\code\sychus\sychus-mobile\tests\acceptance\features\step-definitions\search-housing.steps.ts
    at finalizeResolution (node:internal/modules/esm/resolve:275:11)
    at moduleResolve (node:internal/modules/esm/resolve:860:10)
    at defaultResolve (node:internal/modules/esm/resolve:984:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:780:12)
    at ModuleLoader.#cachedDefaultResolve (node:internal/modules/esm/loader:704:25)
    at ModuleLoader.#resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:739:38)
    at ModuleLoader.resolveSync (node:internal/modules/esm/loader:762:52)
    at ModuleLoader.#cachedResolveSync (node:internal/modules/esm/loader:723:25)
    at ModuleLoader.getModuleJobForRequire (node:internal/modules/esm/loader:451:50)
    at new ModuleJobSync (node:internal/modules/esm/module_job:344:34) {
  code: 'ERR_MODULE_NOT_FOUND',
  url: 'file:///C:/Users/Invit%C3%A9/Documents/code/sychus/sychus-mobile/src/interface-adapters/gateways/InMemoryHousingGateway'
}

Here's the steps definition file :

import HousingGateway from '@/src/enterprise-business-rules/HousingGateway';
import InMemoryHousingGateway from '@/src/interface-adapters/gateways/InMemoryHousingGateway';
import tsflow from 'cucumber-tsflow';


const { binding, given } = tsflow;

const housingGateway: HousingGateway = new InMemoryHousingGateway();

@binding()
export class SearchHousingSteps {
    
    @given(/housings exist/)
    public givenHousingExist(housings: any): void {
        //TODO
    }
    
    @given(/bookings exist/)
    public givenBookingsExist(dataTable: any): void {
        //TODO
    }
}

Here's the tsconfig file :

{
  "extends": "expo/tsconfig.base",
  "compilerOptions": {
    "strict": true,
    "experimentalDecorators": true,
    "paths": {
      "@/*": [
        "./*"
      ]
    }
  },
  "include": [
    "**/*.ts",
    "**/*.tsx",
    ".expo/types/**/*.ts",
    "expo-env.d.ts"
  ]
}

Here's the cucumber.js file for the cli :

let common = [
  'tests/acceptance/features/**/*.feature',                // Specify our feature files
  '--require-module ts-node/register',    // Load TypeScript module
  '--require tests/acceptance/features/step-definitions/**/*.ts',   // Load step definitions
].join(' ');

module.exports = {
  default: common
};

Can you tell me where this error might be coming from?

Ali-Kent avatar May 19 '25 14:05 Ali-Kent