Skip to content

Releases: theintern/intern

4.1.0

07 Nov 03:32
Compare
Choose a tag to compare

Overview

This release includes several new features and improvements, including support for TypeScript 2.6 in strict mode, along with a number of bug fixes.

As always, thanks to everyone who contributed issues, PRs, or suggestions!

New features

  • Individual suites or tests may be run in the HTML reporter by clicking their IDs (#802)
  • The grunt task now accepts a config argument that points to an external config file (#813)
  • Intern now uses the location of the config file as the base path (a.k.a project root). If a relative basePath value is provided in a config file, it is relative to the location of the config file. (#826)
  • Certain object properties can be merged in a config file using '+' in a similar fashion to resource arrays. For example, providing a config property of capabilities+='{"browserstack.debug":true}' will merge the given object with the existing value of config.capabilities. (#827)

Updates and bug fixes

  • Intern is now compatible with TypeScript 2.6 in strict mode.
  • Context is preserved in Deferred callback and rejectOnError callbacks (#810)
  • Istanbul reporter options are now passed to Istanbul (#815)
  • The console is accessed in a safer way (#818)
  • The Node executor's unhandled Promise rejection handler no longer assumes the rejection reason is non-null (#820)
  • Reporters are now initialized after plugins have loaded, improving support for custom reporters (#821)
  • The HTML reporter no longer reports tests that were skipped due to suite failures as passing. (#825)
  • The chai and dojo dependencies were updated (#830)
  • serverUrl, when not specified by the user, is now constructed using serverPort (#831)

4.0.2

13 Oct 03:19
Compare
Choose a tag to compare

Overview

This is a bug fix release that corrects an issue where coverage reporter options weren't being passed to the underlying reporters. (#814, #815)

4.0.1

11 Oct 03:55
Compare
Choose a tag to compare

Overview

This is a bug fix release, with a minor enhancement to the grunt task.

  • The grunt task now supports a config property that behaves similarly to that of the Node runner script. (#812, #813)
  • Globs in suite lists are now expanded together, allowing exclude rules to be properly applied. (#811)
  • The rejectOnError and callback methods on Deferred now pass the proper context to wrapped callbacks. (#809)

4.0.0

11 Oct 03:48
Compare
Choose a tag to compare

Overview

Version 4 is a major update with both internal and user-facing changes. Although Intern's basic functionality and test interfaces are similar to previous versions, Intern 4 is not API-compatible with Intern 3.

Thanks to everyone who contributed issues or code, and especially to those brave souls who've been using the alpha versions through the last few months!

The most significant changes include:

  • Intern has been rewritten in TypeScript. This primarily affects the development of Intern rather than its usage, but users will benefit from more accurate TypeScript typings.
  • Intern can be used programmatically. Previous versions of Intern were only intended to be used with built-in runner scripts, and did not provide a programmatic API.
  • Intern is no longer dependent on the presence of an AMD loader. In Node it uses the environmental loader, and in a browser context Intern loads as a self-contained application. This makes using Intern much simpler in most cases.
  • Code coverage is now opt-in. Rather than an excludeInstrumentation to filter out modules that shouldn't be covered, users must now specify which modules to cover using a coverage property.
  • Intern is now configured using a declarative JSON structure. Previous versions of Intern were configured using an executable module. Using JSON data makes the configuration easier to reason about, and provides a more consistent interface across the command line, browser, and programmatic API.
  • There is only one Node runner script. Intern 3 had two scripts, intern-client and intern-runner, for running unit tests and functional tests in Node. Intern 4 has a single runner script, intern, for running all test types.
  • Intern has a plugin API for extensions. Plugins may register listeners for test events or resources for use in tests, or simply make changes to Intern's configuration or the testing environment.

Other changes include:

  • The object interface API accepts a new, less ambiguous object format.
  • Errors are caught and reported in more places, so there should be fewer silent failures.
  • Intern is now able to trace code references through multiple layers of source map.
  • The runner script now returns a non-zero error code when a test run fails.
  • The test interfaces explicitly past test and suite objects into callbacks (instead of relying on this) to support arrow functions.
  • Intern no longer bundles custom types; it now fully relies on external types from DefinitelyTyped.
  • The QUnit interface has been extracted to an external package.
  • Intern's test server has been re-implemented using express, which will eventually allow for pluggable custom middleware.
  • Some long-standing issues with test and suite counts in the TeamCity and Pretty reporters have been resolved.
  • WebDriver tunnels are no longer forced to use the same proxy config that Intern uses to talk to WebDriver servers themselves.

For more information, check out the docs!

4.0.0-rc.0

29 Sep 19:53
Compare
Choose a tag to compare
4.0.0-rc.0 Pre-release
Pre-release

Overview

This release contains a number of bug fixes and new features, and addresses a couple of our well-aged issues and PRs. Note that there are some breaking changes to how Intern is configured in this release.

This will likely (hopefully) be the last pre-release before 4.0.0.

Thanks to @bartoszkaczorek, @bryanforbes, @gitgrimbo, and @LingSpb for their issue and PR submissions!

Breaking configuration changes

  • Prevent suites config argument from canceling <env>.suites. Specifying suites on the command line will no longer override environment-specific suites lists.
  • Merge require config property into into plugins. By default plugins will be loaded as standalone scripts. If they need to use the external loader, set a useLoader property. (#799)
  • Allow default functional test timeouts to be configured. Functional test timeouts (executeAsync, find, and pageLoad) may now be specified in a functionalTimeouts config property. The connectTimeout property has been moved into functionalTimeouts. (#772)
  • Handle Node more like a remote environment. 'node' is now an be added to the environments list like other remote environments. If no environments are specified, 'node' is the default. (#780)

New features

  • Basic help output was added to the built-in intern command. (#775)
  • Support 'false' for coverage. Setting coverage to false fully disables coverage.
  • Add a browser ESM loader. The loader simply loads scripts using script injection as type 'module'. It is only valid in the browser; in Node, ESMs will be automatically handled through other means. (#782)
  • What's old is new again! Support suite globs when using Intern's server (this feature was removed in the initial Intern 4 alpha). Globs are detected in the Browser executor using minimatch (an improvement over Intern 3) and sent to Intern's server for resolution. (#777)
  • Allow separate tunnel and WebDriver proxy configs. If a top-level proxy config property is specified, it will be used for outgoing WebDriver requests. Otherwise, the Dig Dug tunnel's proxy value will be used. Setting proxy to null or '' will force the Leadfoot server to ignore the tunnel's proxy setting. Similarly, if no tunnel proxy is specified but a config proxy is, the config proxy will be used for the Dig Dug tunnel. (#509)
  • Support a functionalBaseUrl config property. This property will be used as the base URL for relative GET requests. If not specified, the serverUrl will be used as the base URL (this is the existing behavior). (#764)
  • Add a numPassedTests property to Suite. This allows the number of tests that haven't been run (as opposed to those that have been explicitly skipped) to be determined. (#629)

Bug fixes and general updates

  • Add a 'safe' isTask method to improve compatibility with ChaiAsPromised. (#785)
  • Improve multi-step sourcemap resolution. In the Node executor, use the resolved source from the instrumentation source map (if one exists) when looking for the original source mapping.
  • Reimplement Intern's Server using express.
  • Increase Server's request body size limit so that data from large test suites won't be ignored.
  • Fix Pretty.js initial test total value (#647, port of commit 7679fed)
  • Treat both internPath and basePath as the base path in Interns' server. (#798)
  • Respond with a 404 in the unhandled middleware for GET and HEAD requests to non-existent resources.
  • Improve suite error reporting in Runner reporter.
  • Make TDD/BDD lifecycle methods async-safe. When a lifecycle method such as beforeEach is added multiple times using the TDD or BDD interfaces, Intern will now wait for the return value of each method to resolve before calling the next. (#767)
  • Update Pretty reporter test count logic to not show unrun tests as failing (#629)
  • Emit testIgnored messages for unrun tests in TeamCity reporter (#629)
  • Don't print coverage reports in Coverage reporters when no files were covered.

4.0.0-alpha.16

29 Sep 18:41
Compare
Choose a tag to compare
4.0.0-alpha.16 Pre-release
Pre-release

Changes

  • Events that are emitted before reporters are initialized are now queued and re-emitted after reporter initialization. (#796)
  • Detection of malformed object suite descriptors (used with the object interface) has been improved
  • The loadScript method in the Node executor can now load modules from node_modules (#788)
  • A warning is now emitted when no config file was found (#791)
  • Browser bundles are now optimized
  • The cli now understands nested config parameters (e.g., node.suites="_tests/unit/**/*.js") (#792)

4.0.0-alpha.15

11 Sep 12:19
Compare
Choose a tag to compare
4.0.0-alpha.15 Pre-release
Pre-release

Overview

This release updates the leadfoot, digdug, and @dojo/* dependencies, and it fixes a case where Intern would instantiate multiple executors when run from the command line.

4.0.0-alpha.14

06 Sep 13:09
Compare
Choose a tag to compare
4.0.0-alpha.14 Pre-release
Pre-release

Overview

This release contains bug fixes, typing updates and a potentially breaking change.

Breaking changes

  • The intern module was removed

Bug fixes

  • Config file paths may now contain '@'. (#787)
  • Object properties can now be cleared from the cli. (#789)
  • The JUnit reporter now uses mkdirSync to create the report output directory. Previously it was using mkdir in a synchronous fashion, which would occasionally result in the report directory not existing at report creation time.
  • CLI args may now contain '='.

Other updates

  • Intern no longer uses any custom types for dependencies.
  • Leadfoot and Dig Dug dependencies were updated.

4.0.0-alpha.13

06 Sep 13:02
Compare
Choose a tag to compare
4.0.0-alpha.13 Pre-release
Pre-release

Overview

This release changes how configuration data is passed to plugin and loader initializers. Intern now passes copies of configuration data rather than the original objects, preventing unintended modifications to config data.

4.0.0-alpha.12

06 Sep 13:01
Compare
Choose a tag to compare
4.0.0-alpha.12 Pre-release
Pre-release

Overview

This release improves error reporting and updates dependencies. The dependency updates fixes an issue that could cause IE 11 to hang.

  • Errors emitted during RemoteSuite initialization are now caught and reported.
  • Errors are marked when reported; this prevents errors from being reported multiple times.
  • @dojo/core and @dojo/shim were updated, fixing a JS queuing issue that could cause IE 11 to hang indefinitely.