Supported technologies: Nx/Nrwl

Wallaby.js supports running tests in Nx/Nrwl monorepos.

By default, when you use Nx/Nrwl to create a new application or library, Facebook Jest is configured as the testing framework.

You may use Wallaby’s automatic configuration within your monorepo, with an important caveat. Without changes to your jest configuration files, Wallaby can only run for one application or library at a time. When you select your automatic configuration directory, you must select an application/library directory, and not the monorepo root directory.

How to run Wallaby on the entire monorepo

The reason that by default Wallaby.js is limited to only running on one project at a time is that the jest configuration files that are generated by Nx/Nrwl are not valid. That is to say, they cannot be run using npx jest or running jest from the CLI without some changes.

Your on-disk jest configuration files are augmented by @nrwl/jest when you run your tests with ng test. Additionally, the default jest configuration that is specified in the project root will also run your e2e tests, which will result in failures.

To run Wallaby on your entire project, you must ensure that npx jest runs correctly from your application and library root directories, and from your monorepo root directory. Once npx jest runs correctly, you may use Wallaby’s automatic configuration on your entire monorepo.

If jest does not run from the command-line for an application/library, you should be able to modify its jest.config.js to run by adding the following to its jest configuration:

...
  setupTestFrameworkScriptFile: './src/test-setup.ts',
  globals: {
    'ts-jest': {
      tsConfig: "./tsconfig.spec.json",
      diagnostics: { warnOnly: true },
      stringifyContentPathRegex: "\\.html$",
      astTransformers: ["jest-preset-angular/InlineHtmlStripStylesTransformer"]
    }
  }
...

Karma or Hybrid Test Frameworks

If your project has been configured to use different testing frameworks for different projects (e.g. karma and jest) then you must create a Wallaby configuration file for each testing framework. Wallaby cannot run for more than one testing framework at a time.

Our Angular CLI docs provide a good example for how to configure Wallaby with karma.

Troubleshooting

If you get stuck or something isn’t working for you, you may find a similar solved issue in our github issues repository. If you can’t find a solution, create a new issue.