1

我有从 docker-compose 运行的带有 React 应用程序的容器。当我使用打印此容器的日志时

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.

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

此致

4

1 回答 1

1

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

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" 
于 2022-01-06T14:31:47.560 回答