question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Not possible to use Before or BeforeSuite with BDD

See original GitHub issue

What are you trying to achieve?

I want to implemente a Before/BeforeSuite hook for all my tests

What do you get instead?

BeforeSuite is not defined

Provide console output if related. Use --verbose mode for more details.

Could not include object Step Definition from ./tests/step_definitions/steps.js from module 'project/tests/step_definitions/steps.js'
BeforeSuite is not defined

Error:
    at loadSupportObject (/Users/xxx/.nvm/versions/node/v8.10.0/lib/node_modules/codeceptjs/lib/container.js:212:11)
    at loadGherkinSteps (/Users/xxx/.nvm/versions/node/v8.10.0/lib/node_modules/codeceptjs/lib/container.js:201:5)
    at Function.create (/Users/xxx/.nvm/versions/node/v8.10.0/lib/node_modules/codeceptjs/lib/container.js:34:25)
    at Codecept.init (/Users/xxx/.nvm/versions/node/v8.10.0/lib/node_modules/codeceptjs/lib/codecept.js:37:15)
    at Command.module.exports (/Users/xxx/.nvm/versions/node/v8.10.0/lib/node_modules/codeceptjs/lib/command/run.js:35:14)
    at Command.listener (/Users/xxx/.nvm/versions/node/v8.10.0/lib/node_modules/codeceptjs/node_modules/commander/index.js:315:8)
    at emitTwo (events.js:126:13)
    at Command.emit (events.js:214:7)
    at Command.parseArgs (/Users/xxx/.nvm/versions/node/v8.10.0/lib/node_modules/codeceptjs/node_modules/commander/index.js:651:12)
    at Command.parse (/Users/xxx/.nvm/versions/node/v8.10.0/lib/node_modules/codeceptjs/node_modules/commander/index.js:474:21)

Provide test source code if related

// Scenario:
Feature: Change published block type

  As a Typeform user
  I want to change the type of published blocks
  So I can edit my forms quickly

  Scenario: Change published block type

    Given an editor with a multiple choice block
    And I have changed the block type to dropdown
    When the form is saved
    Then the payload should be valid

//Steps definition
const I = actor()

const assert = require('assert')

BeforeSuite((I) => {
  I.amOnPage('/')
})

Details

  • CodeceptJS version:1.4.2
  • NodeJS Version: 8.10.0
  • Operating System: Mojave
  • Puppeteer
  • Configuration file:
{
  "output": "./output",
  "helpers": {
    "Puppeteer": {
      "url": "http://localhost:9000",
      "waitForNavigation": [
        "domcontentloaded",
        "networkidle0"
      ],
      "windowSize": "1280x800",
      "chrome": {
        "args": [
          "--no-sandbox",
          "--disable-setuid-sandbox"
        ]
      },
      "show": false
    },
    "RequestInterceptionHelper": {
      "require": "./tests/request_interception_helper.js"
    },    
    "StepHelper": {
      "require": "./tests/step_helper.js"
    }
  },
  "include": {
    "customizeThemePage": "./tests/pages/customize-theme.js",
    "notificationPanelPage": "./tests/pages/notifications_panel.js"
  },
  "mocha": {},
  "bootstrap": false,
  "teardown": null,
  "hooks": [],
  "gherkin": {
    "features": "./tests/features/*.feature",
    "steps": [
      "./tests/step_definitions/steps.js"
    ]
  },
  "timeout": 10000,
  "name": "xxx"
}

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:2
  • Comments:5

github_iconTop GitHub Comments

2reactions
akdasacommented, Apr 25, 2019

Here is a snippet from documentation:

// inside step_definitions
Before((test) => {
  // perform your code
  test.retries(3); // retry test 3 times
});

It throws the following exception:

Could not include object Step Definition from ./step_definitions/users.steps.js from module 'XXXX' Before is not defined

I understood what Background is a better way to organize steps. Here is my point:

  1. Is documentation outdated?
  2. How to organize steps like “clean DB” better with Background?

Thanks.

0reactions
jordiponsllauradocommented, Oct 31, 2018

Yes I know but what if I don’t want to add a background on each feature, is it possible to not do it?

In Ruby for example is possible to create hooks so you don’t need to

Read more comments on GitHub >

github_iconTop Results From Across the Web

Not possible to use Before or BeforeSuite with BDD #1298
I want to implemente a Before/BeforeSuite hook for all my tests What do you get ... Not possible to use Before or BeforeSuite...
Read more >
How to run @BeforeSuite and @AfterSuite methods defined in ...
java - How to run @BeforeSuite and @AfterSuite methods defined in another class before the execution of the step def class starts? -...
Read more >
Ginkgo test suite - GitHub Pages
Ginkgo is sometimes described as a "Behavior Driven Development" (BDD) framework. In reality, Ginkgo is a general purpose testing framework in active use...
Read more >
Getting Started - CodeceptJS
ℹ If click doesn't work in a test but works for user, it is possible that frontend application is not designed for automated...
Read more >
Getting @BeforeAll and @AfterAll behaviour with Cucumber ...
Use a Before and a shutdown hook ... Cucumber JVM does not feature a @BeforeAll or @AfterAll lifecycle hook to run setup and...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found