在 docker 个容器内触发反应测试

Triggering react tests inside docker containers

我有一个带有 React 应用程序的容器,它 运行ning 来自 docker-compose。 当我使用

打印此容器的日志时
docker-compose logs -f

有留言:

PASS  src/App.test.js
  ✓ renders learn react link (28 ms)
tests_1  |
Test Suites: 1 passed, 1 total
tests_1  | Tests:       1 passed, 1 total
tests_1  | Snapshots:   0 total
tests_1  | Time:        1.258 s
tests_1  | Ran all test suites related to changed files.
tests_1  |
tests_1  | Watch Usage
tests_1  |  › Press a to run all tests.
tests_1  |  › Press f to run only failed tests.
tests_1  |  › Press q to quit watch mode.
tests_1  |  › Press p to filter by a filename regex pattern.
tests_1  |  › Press t to filter by a test name regex pattern.
tests_1  |  › Press Enter to trigger a test run.

容器与绑定挂载一起使用。我的项目目录中的更改已加载到容器中。当我添加一些新测试时,如何在 运行ning 容器中“按 Enter 触发测试 运行”?如果我无法在容器中按 enter,我该如何刷新容器以进行 运行 新测试?我使用 React 17、WSL、Windows 和 FAST_REFRESH 或 CHOKIDAR_USEPOLLING 等环境变量不起作用。

此致

问题是以下命令显示了容器中的日志流。但它不是交互式的(它不是 shell。它只是显示日志)。

docker-compose logs -f

如果您真的对 host 机器(在您的机器中)中的某些测试文件进行了更改并保存,它将重新运行 测试。

如果您 运行 在您的 React 应用程序的根文件夹中执行以下 docker 命令,它将为启动的容器启动一个交互式 (-it) shell您可以按 Enter 重新运行 测试。

docker run -it -w /app -v "$(pwd)":/app node:latest sh -c "npm run test"