Github 操作自动单元测试失败,并显示"找不到模块'aws-export'"



我正试图找到一种方法,在使用Github Actions来触发拉请求的单元测试的项目上自动运行单元测试。

在操作的每个实例中,它在

行失败。
import awsconfig from 'aws-exports';

错误:

Cannot find module 'aws-exports' from 'src/resource/utils/HttpMethods.js'

问题似乎是,aws-exports文件是由Amplify在构建时生成的,然而,由于这些测试是在创建PR时在github上运行的,因此Amplify尚未构建并且尚未生成aws-exports文件。

我肯定我不是第一个想要为Amplify托管站点运行自动化单元测试的人。有人遇到这个问题/找到解决方案了吗?

我的github操作参考:

name: Node CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn test

我已经尝试过从gitignore中删除laws -exports并手动将其发布到repo。这可以工作,但不是理想的,因为amplify将在构建时重新生成该文件。

edit我当前的(有效的?)解决方案是为每个环境创建一个虚拟配置文件,其中包含如果构建了法律导出将包含的内容。我导入这个文件,而不是aw -exports。虽然这个解决方案"有效";现在,它感觉很脆弱,我宁愿有一个合适的解决方案。

我能够使用amplify-cli-action在我的GitHub Actions中配置放大。

注意:我必须对默认示例进行一个小更新,以包括amplify_cli_version: 10.6.1,如此问题的解决方案中所述:https://github.com/ambientlight/amplify-cli-action/issues/31

name: Build/Test
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- run: npm install
- name: configure amplify
uses: ambientlight/amplify-cli-action@0.3.0
with:
amplify_command: configure
amplify_env: dev
amplify_cli_version: 10.6.1
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-west-2
- run: npm test

最新更新