v28.0.0
版本发布时间: 2022-04-25 20:09:47
jestjs/jest最新发布版本:v30.0.0-alpha.6(2024-08-08 15:46:22)
Blog post: https://jestjs.io/blog/2022/04/25/jest-28
Features
-
[babel-jest]
ExportcreateTransformer
function (#12399) -
[expect]
ExposeAsymmetricMatchers
,MatcherFunction
andMatcherFunctionWithState
interfaces (#12363, #12376) -
[jest-circus]
Support error logging before retry (#12201) -
[jest-circus, jest-jasmine2]
Allowed classes and functions asdescribe
andit
/test
names (#12484) -
[jest-cli, jest-config]
[BREAKING] RemovetestURL
config, usetestEnvironmentOptions.url
instead (#10797) -
[jest-cli, jest-core]
Add--shard
parameter for distributed parallel test execution (#12546) -
[jest-cli]
[BREAKING] Remove undocumented--timers
option (#12572) -
[jest-config]
[BREAKING] Stop shippingjest-environment-jsdom
by default (#12354) -
[jest-config]
[BREAKING] Stop shippingjest-jasmine2
by default (#12355) -
[jest-config, @jest/types]
Addci
toGlobalConfig
(#12378) -
[jest-config]
[BREAKING] RenamemoduleLoader
toruntime
(#10817) -
[jest-config]
[BREAKING] RenameextraGlobals
tosandboxInjectedGlobals
(#10817) -
[jest-config]
[BREAKING] Throw an error instead of showing a warning if multiple configs are used (#12510) -
[jest-config]
[BREAKING] Do not normalize long deprecated configuration optionspreprocessorIgnorePatterns
,scriptPreprocessor
,setupTestFrameworkScriptFile
andtestPathDirs
(#12701) -
[jest-cli, jest-core]
Add--ignoreProjects
CLI argument to ignore test suites by project name (#12620) -
[jest-core]
Pass project config toglobalSetup
/globalTeardown
function as second argument (#12440) -
[jest-core]
Stabilize test runners with event emitters (#12641) -
[jest-core, jest-watcher]
[BREAKING] MoveTestWatcher
class tojest-watcher
package (#12652) -
[jest-core]
Allow using Summary Reporter as stand-alone reporter (#12687) -
[jest-environment-jsdom]
[BREAKING] Upgrade jsdom to 19.0.0 (#12290) -
[jest-environment-jsdom]
[BREAKING] Add defaultbrowser
condition toexportConditions
forjsdom
environment (#11924) -
[jest-environment-jsdom]
[BREAKING] Pass global config to Jest environment constructor forjsdom
environment (#12461) -
[jest-environment-jsdom]
[BREAKING] Second argumentcontext
to constructor is mandatory (#12469) -
[jest-environment-node]
[BREAKING] Add defaultnode
andnode-addon
conditions toexportConditions
fornode
environment (#11924) -
[jest-environment-node]
[BREAKING] Pass global config to Jest environment constructor fornode
environment (#12461) -
[jest-environment-node]
[BREAKING] Second argumentcontext
to constructor is mandatory (#12469) -
[jest-environment-node]
Add all available globals to test globals, not just explicit ones (#12642, #12696) -
[@jest/expect]
New module which extendsexpect
withjest-snapshot
matchers (#12404, #12410, #12418) -
[@jest/expect-utils]
New module exporting utils forexpect
(#12323) -
[@jest/fake-timers]
[BREAKING] Renametimers
configuration option tofakeTimers
(#12572) -
[@jest/fake-timers]
[BREAKING] Allowjest.useFakeTimers()
andprojectConfig.fakeTimers
to take an options bag (#12572) -
[jest-haste-map]
[BREAKING]HasteMap.create
now returns a promise (#12008) -
[jest-haste-map]
Add support fordependencyExtractor
written in ESM (#12008) -
[jest-mock]
[BREAKING] Rename exported utility typesClassLike
,FunctionLike
,ConstructorLikeKeys
,MethodLikeKeys
,PropertyLikeKeys
; remove exports of utility typesArgumentsOf
,ArgsType
,ConstructorArgumentsOf
- TS builtin utility typesConstructorParameters
andParameters
should be used instead (#12435, #12489) -
[jest-mock]
ImproveisMockFunction
to infer types of passed function (#12442) -
[jest-mock]
[BREAKING] Improve the usage ofjest.fn
generic type argument (#12489) -
[jest-mock]
Add support for auto-mocking async generator functions (#11080) -
[jest-mock]
Addcontexts
member to mock functions (#12601) -
[@jest/reporters]
Add GitHub Actions reporter (#11320, #12658) -
[@jest/reporters]
PassreporterContext
to custom reporter constructors as third argument (#12657) -
[jest-resolve]
[BREAKING] Add support forpackage.json
exports
(#11961, #12373) -
[jest-resolve]
Support package self-reference (#12682) -
[jest-resolve, jest-runtime]
Add support fordata:
URI import and mock (#12392) -
[jest-resolve, jest-runtime]
Add support for async resolver (#11540) -
[jest-resolve]
[BREAKING] Removebrowser?: boolean
from resolver options,conditions: ['browser']
should be used instead (#12707) -
[jest-resolve]
ExposeJestResolver
,AsyncResolver
,SyncResolver
,PackageFilter
,PathFilter
andPackageJSON
types (#12707, (#12712) -
[jest-runner]
AllowsetupFiles
module to export an async function (#12042) -
[jest-runner]
Allow passingtestEnvironmentOptions
via docblocks (#12470) -
[jest-runner]
ExposeCallbackTestRunner
,EmittingTestRunner
abstract classes andCallbackTestRunnerInterface
,EmittingTestRunnerInterface
to help typing third party runners (#12646, #12715) -
[jest-runner]
Lock version ofsource-map-support
to 0.5.13 (#12720) -
[jest-runtime]
[BREAKING]Runtime.createHasteMap
now returns a promise (#12008) -
[jest-runtime]
Callingjest.resetModules
function will clear FS and transform cache (#12531) -
[jest-runtime]
[BREAKING] RemoveContext
type export, it must be imported from@jest/test-result
(#12685) -
[jest-runtime]
Addimport.meta.jest
(#12698) -
[@jest/schemas]
New module for JSON schemas for Jest's config (#12384) -
[@jest/source-map]
Migrate fromsource-map
to@jridgewell/trace-mapping
(#12692) -
[jest-transform]
[BREAKING] Make it required forprocess()
andprocessAsync()
methods to always return structured data (#12638) -
[jest-test-result]
Add duration property to JSON test output (#12518) -
[jest-watcher]
[BREAKING] MakePatternPrompt
class to takeentityName
as third constructor parameter instead ofthis._entityName
(#12591) -
[jest-worker]
[BREAKING] Allow only absoluteworkerPath
(#12343) -
[jest-worker]
[BREAKING] Default to advanced serialization when using child process workers (#10983) -
[pretty-format]
NewmaxWidth
parameter (#12402)
Fixes
-
[*]
Usesha256
instead ofmd5
as hashing algortihm for compatibility with FIPS systems (#12722) -
[babel-jest]
[BREAKING] PassrootDir
asroot
in Babel's options (#12689) -
[expect]
Move typings of.not
,.rejects
and.resolves
modifiers outside ofMatchers
interface (#12346) -
[expect]
Throw useful error ifexpect.extend
is called with invalid matchers (#12488) -
[expect]
FixiterableEquality
ignores other properties (#8359) -
[expect]
Fix print for thecloseTo
matcher (#12626) -
[jest-changed-files]
ImprovechangedFilesWithAncestor
pattern for Mercurial SCM (#12322) -
[jest-circus, @jest/types]
Disallow undefined value inTestContext
type (#12507) -
[jest-config]
Correctly detect CI environment and update snapshots accordingly (#12378) -
[jest-config]
PassmoduleTypes
tots-node
to enforce CJS when transpiling (#12397) -
[jest-config]
[BREAKING] Addmjs
andcjs
to defaultmoduleFileExtensions
config (#12578) -
[jest-config, jest-haste-map]
Allow searching for tests innode_modules
by exposingretainAllFiles
(#11084) -
[jest-core]
[BREAKING] Exit with status1
if no tests are found with--findRelatedTests
flag (#12487) -
[jest-core]
Do not report unref-ed subprocesses as open handles (#12705) -
[jest-each]
%#
is not replaced with index of the test case (#12517) -
[jest-each]
Fixes error message with incorrect count of missing arguments (#12464) -
[jest-environment-jsdom]
Makejsdom
accessible to extending environments again (#12232) -
[jest-environment-jsdom]
Log JSDOM errors more cleanly (#12386) -
[jest-environment-node]
AddMessageChannel
,MessageEvent
to globals (#12553) -
[jest-environment-node]
AddstructuredClone
to globals (#12631) -
[@jest/expect-utils]
[BREAKING] Fix false positives when looking forundefined
prop (#8923) -
[jest-haste-map]
Don't use partial results if file crawl errors (#12420) -
[jest-haste-map]
Make watchman existence check lazy+async (#12675) -
[jest-jasmine2, jest-types]
[BREAKING] Move alljasmine
specific types from@jest/types
to its own package (#12125) -
[jest-jasmine2]
Do not setduration
to0
for skipped tests (#12518) -
[jest-matcher-utils]
Pass maxWidth topretty-format
to avoid printing every element in arrays by default (#12402) -
[jest-mock]
Fix function overloads forspyOn
to allow more correct type inference in complex object (#12442) -
[jest-mock]
Handle overriddenFunction.name
property (#12674) -
[@jest/reporters]
Notifications generated by the--notify
flag are no longer persistent in GNOME Shell. (#11733) -
[@jest/reporters]
Move missing icon file which is needed forNotifyReporter
class. (#12593) -
[@jest/reporters]
Updatev8-to-istanbul
(#12697) -
[jest-resolver]
Call custom resolver with core node.js modules (#12654) -
[jest-runner]
Correctly resolvesource-map-support
(#12706) -
[jest-worker]
FixFarm
execution results memory leak (#12497)
Chore & Maintenance
-
[*]
[BREAKING] Drop support for Node v10 and v15 and target first LTS16.13.0
(#12220) -
[*]
[BREAKING] Drop support fortypescript@3.8
, minimum version is now4.3
(#11142, #12648) -
[*]
Bundle all.d.ts
files into a singleindex.d.ts
per module (#12345) -
[*]
UseglobalThis
instead ofglobal
(#12447) -
[babel-jest]
[BREAKING] Only exportcreateTransformer
(#12407) -
[docs]
Add note about not mixingdone()
with Promises (#11077) -
[docs, examples]
Update React examples to match with the new React guidelines for code examples (#12217) -
[docs]
Add clarity for module factory hoisting limitations (#12453) -
[docs]
Add more information about how code transformers work (#12407) -
[docs]
Add upgrading guide (#12633) -
[expect]
[BREAKING] Remove support for importingbuild/utils
(#12323) -
[expect]
[BREAKING] Migrate to ESM (#12344) -
[expect]
[BREAKING] Snapshot matcher types are moved to@jest/expect
(#12404) -
[jest-cli]
Updateyargs
to v17 (#12357) -
[jest-config]
[BREAKING] RemovegetTestEnvironment
export (#12353) -
[jest-config]
[BREAKING] Rename config optionname
toid
(#11981) -
[jest-create-cache-key-function]
Added README.md file with basic usage instructions (#12492) -
[@jest/core]
Useindex.ts
instead ofjest.ts
as main export (#12329) -
[jest-environment-jsdom]
[BREAKING] Migrate to ESM (#12340) -
[jest-environment-node]
[BREAKING] Migrate to ESM (#12340) -
[jest-haste-map]
Remove legacyisRegExpSupported
(#12676) -
[@jest/fake-timers]
Update@sinonjs/fake_timers
to v9 (#12357) -
[jest-jasmine2, jest-runtime]
[BREAKING] UseSymbol
to passjest.setTimeout
value instead ofjasmine
specific logic (#12124) -
[jest-phabricator]
[BREAKING] Migrate to ESM (#12341) -
[jest-resolve]
[BREAKING] MakerequireResolveFunction
argument mandatory (#12353) -
[jest-runner]
[BREAKING] Remove some type exports from@jest/test-result
(#12353) -
[jest-runner]
[BREAKING] Second argument to constructor (Context
) is not optional (#12640) -
[jest-serializer]
[BREAKING] Deprecate package in favour of usingv8
APIs directly (#12391) -
[jest-snapshot]
[BREAKING] Migrate to ESM (#12342) -
[jest-transform]
Updatewrite-file-atomic
to v4 (#12357) -
[jest-types]
[BREAKING] RemoveConfig.Glob
andConfig.Path
(#12406) -
[jest]
Useindex.ts
instead ofjest.ts
as main export (#12329)
Performance
-
[jest-haste-map]
[BREAKING] Default tonode
crawler over shelling out tofind
ifwatchman
is not enabled (#12320)
New Contributors
- @marcelltoth made their first contribution in https://github.com/facebook/jest/pull/12290
- @soryy708 made their first contribution in https://github.com/facebook/jest/pull/12010
- @dmitryvinn-fb made their first contribution in https://github.com/facebook/jest/pull/12379
- @cola119 made their first contribution in https://github.com/facebook/jest/pull/12375
- @holylander made their first contribution in https://github.com/facebook/jest/pull/12257
- @jsjoeio made their first contribution in https://github.com/facebook/jest/pull/11077
- @tbossi made their first contribution in https://github.com/facebook/jest/pull/12392
- @ryanwilsonperkin made their first contribution in https://github.com/facebook/jest/pull/12402
- @yesmeck made their first contribution in https://github.com/facebook/jest/pull/12408
- @benblank made their first contribution in https://github.com/facebook/jest/pull/12441
- @john-u made their first contribution in https://github.com/facebook/jest/pull/12453
- @cjr125 made their first contribution in https://github.com/facebook/jest/pull/11084
- @davidjgoss made their first contribution in https://github.com/facebook/jest/pull/11566
- @SixTfour made their first contribution in https://github.com/facebook/jest/pull/8923
- @aditya04848 made their first contribution in https://github.com/facebook/jest/pull/12385
- @rick-shar-ww made their first contribution in https://github.com/facebook/jest/pull/8333
- @shooit made their first contribution in https://github.com/facebook/jest/pull/11080
- @d7my11 made their first contribution in https://github.com/facebook/jest/pull/8359
- @BudgieInWA made their first contribution in https://github.com/facebook/jest/pull/11733
- @IIIEII made their first contribution in https://github.com/facebook/jest/pull/12497
- @mhnaeem made their first contribution in https://github.com/facebook/jest/pull/12492
- @adrianbienias made their first contribution in https://github.com/facebook/jest/pull/12501
- @TrickyPi made their first contribution in https://github.com/facebook/jest/pull/12510
- @F3n67u made their first contribution in https://github.com/facebook/jest/pull/12517
- @dmitryvinn made their first contribution in https://github.com/facebook/jest/pull/12532
- @brandon-leapyear made their first contribution in https://github.com/facebook/jest/pull/12526
- @marionebl made their first contribution in https://github.com/facebook/jest/pull/12546
- @matthias-ccri made their first contribution in https://github.com/facebook/jest/pull/12601
- @Kaiguang made their first contribution in https://github.com/facebook/jest/pull/12616
- @ockham made their first contribution in https://github.com/facebook/jest/pull/11320
- @msonnberger made their first contribution in https://github.com/facebook/jest/pull/12608
- @nate-io made their first contribution in https://github.com/facebook/jest/pull/12607
- @fatso83 made their first contribution in https://github.com/facebook/jest/pull/12407
- @Araxeus made their first contribution in https://github.com/facebook/jest/pull/12631
- @Udit-takkar made their first contribution in https://github.com/facebook/jest/pull/11981
- @ChocolateLoverRaj made their first contribution in https://github.com/facebook/jest/pull/12654
- @adi611 made their first contribution in https://github.com/facebook/jest/pull/12555
- @fisker made their first contribution in https://github.com/facebook/jest/pull/12653
- @flakolefluk made their first contribution in https://github.com/facebook/jest/pull/12464
- @L4vlet made their first contribution in https://github.com/facebook/jest/pull/12626
- @Gerrit0 made their first contribution in https://github.com/facebook/jest/pull/12612
- @robhogan made their first contribution in https://github.com/facebook/jest/pull/12676
- @wrslatz made their first contribution in https://github.com/facebook/jest/pull/12693
- @katlim-br made their first contribution in https://github.com/facebook/jest/pull/12702
- @zackasaurus made their first contribution in https://github.com/facebook/jest/pull/12201
- @darmbrust made their first contribution in https://github.com/facebook/jest/pull/12722
- @Ash-KODES made their first contribution in https://github.com/facebook/jest/pull/12565
Full Changelog: https://github.com/facebook/jest/compare/v27.5.1...v28.0.0