小编Luc*_*lte的帖子

events.js:288 错误:使用 Jest 执行测试时写入 EPIPE

我在将 React 测试库设置到一个新项目中时遇到问题,该项目是为多个项目生成通用 UI 组件的项目。在其中一个项目中,它设置正确,但是当我在该项目中添加 React 测试库并更新依赖项时,我能够运行测试,但不能运行全部测试。

如果我yarn test这样做,结果是:

Test Suites: 8 passed, 8 of 33 total
Tests:       84 passed, 84 total
Snapshots:   0 total
Time:        28 sevents.js:288
      throw er; // Unhandled 'error' event
      ^

Error: write EPIPE
    at ChildProcess.target._send (internal/child_process.js:806:20)
    at ChildProcess.target.send (internal/child_process.js:677:19)
    at ChildProcessWorker.send (C:\Users\user\workspace\project\node_modules\jest-worker\build\workers\ChildProcessWorker.js:291:17)
    at WorkerPool.send (C:\Users\user\workspace\project\node_modules\jest-worker\build\WorkerPool.js:32:34)
    at Farm._process (C:\Users\user\workspace\project\node_modules\jest-worker\build\Farm.js:129:10)
    at Farm._enqueue (C:\Users\user\workspace\project\node_modules\jest-worker\build\Farm.js:152:10)
    at Farm._push (C:\Users\user\workspace\project\node_modules\jest-worker\build\Farm.js:159:12)
    at C:\Users\user\workspace\project\node_modules\jest-worker\build\Farm.js:90:14
    at new Promise (<anonymous>)
    at Farm.doWork (C:\Users\user\workspace\project\node_modules\jest-worker\build\Farm.js:56:12)
Emitted 'error' event on ChildProcess instance at:
    at internal/child_process.js:810:39
    at …
Run Code Online (Sandbox Code Playgroud)

reactjs jestjs react-testing-library

7
推荐指数
1
解决办法
7313
查看次数

使用 React-Virtualized AutoSizer 时,子项未在测试中呈现

我有一个使用 react-virtualized AutoSizer 的组件,在这个组件里面有一个 react-virtualized List。它的呈现方式是:

<AutoSizer>
  {({width, height}) => (
    <List ref={(ref) => (this.refVirtualizedList = ref)}
      width={width}
      height={height}
      playlistLoading={playlistLoading}
      playlistPlayingTrackId={playlistPlayingTrackId}
      rowCount={rowCount}
      deferredMeasurementCache={this.cellMeasurerCache}
      overscanRowCount={12}
      scrollToIndex={trackGroupToGo - 1}
      scrollToAlignment="center"
      rowHeight={this.cellMeasurerCache.rowHeight}
      updateTrackListFlag={updateTrackListFlag}
      noRowsRenderer={this.renderNoRowsResult}
      rowRenderer={this.renderTrackGroupRow}
      onRowsRendered={this.handleOnRowsRendered} />
  )}
</AutoSizer>
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但它不适用于测试。我看不到列表中的任何内容,并且rowRenderer从未调用过该函数。我正在使用 Jest 和 React 测试库。当使用该logDOM方法检查组件内部的内容时,我看到的是:

<div
  aria-label="grid"
  aria-readonly="true"
  class="ReactVirtualized__Grid ReactVirtualized__List"
  role="grid"
  style="box-sizing: border-box; direction: ltr; height: 0px; position: relative; width: 0px; will-change: transform; overflow-x: hidden; overflow-y: auto;"
  tabindex="0"
/>
Run Code Online (Sandbox Code Playgroud)

List 组件永远不会呈现。有任何想法吗?

reactjs jestjs react-virtualized react-testing-library

4
推荐指数
1
解决办法
2116
查看次数