在 GitHub 上使用 Realm 测试 Expo 应用程序失败

问题描述 投票:0回答:1

我使用 JavaScript 创建了一个 Expo 应用程序。我已经在这个 Expo 应用程序中安装了 Realm。我已经为这个应用程序编写了快照测试。我还为 Realm 数据库编写了测试。这些测试按预期工作。

当我在本地计算机上运行测试时,测试通过了。

我已将此应用程序和测试推送到 GitHub。每次推送到 GitHub 时,我都会编写一个

.github/workflows/testing.yml
文件来测试这个应用程序。这些测试失败的原因是它们在 GitHub 上运行的时间太长。然而,它们在我的台式电脑上运行只需几秒钟,这不是一台强大的机器。

如何在每次推送到 GitHub 时正确运行测试?

我尝试使用的

.github/workflows/testing.yml
文件的一个示例:

name: Run Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: "20"
      - name: Install dependencies
        run: |
          npm install
      - name: Run tests
        env:
          CI: true
        run: |
          npm test --detectOpenHandles --forceExit

我还尝试创建更大的

.github/workflows/testing.yml
文件,用于下载 Android 命令行工具、安装 Android 模拟器并在测试代码之前在 Android 模拟器上运行应用程序。然而,这也失败了。

react-native testing expo github-actions realm
1个回答
0
投票

不要使用 npm 命令,而是使用

package.json
文件中找到的正确测试方法来测试代码。

例如,如果

package.json
文件中的命令为:
"test": "jest --watchAll --runInBand --detectOpenHandles"
,则正确的
.github/workflows/testing.yml
文件将为:

name: Run Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Install Dependencies
        run: npm install
      - name: Run tests
        run: npx jest --runInBand --detectOpenHandles --forceExit

请勿使用

--watchAll
命令,因为这可能会导致您面临的问题。使用
--forceExit
文件中的
.github/workflows/testing.yml
命令确保退出测试。

这样,您就可以保持

package.json
文件中的命令不变,并可以以相同的方式继续在本地计算机上测试应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.