首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSpec模型测试加密属性随机失败测试"key_derivation_salt未配置“

RSpec模型测试加密属性随机失败测试"key_derivation_salt未配置“
EN

Stack Overflow用户
提问于 2022-06-02 20:03:24
回答 1查看 307关注 0票数 2

我有一个带有加密属性的模型的Rails 7.0.3应用程序。我有一个RSpec测试来测试模型的行为。我有一个运行GitHub的RSpec操作工作流设置。但是:每一次针对特定提交的第一次运行都会失败,每一次运行都会成功地执行。作为

错误:

代码语言:javascript
复制
ActiveRecord::Encryption::Errors::Configuration:
       key_derivation_salt is not configured. Please configure it via credential active_record_encryption.key_derivation_salt or by setting config.active_record.encryption.key_derivation_salt

GitHub操作配置(为了简洁起见,忽略了一些不必要的细节):

代码语言:javascript
复制
name: CI
on: [push]
jobs:
  rspec:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: ".ruby-version"
    - name: Bundle Install
      run: |
        gem install bundler -v $(grep 'BUNDLED WITH' -A1 Gemfile.lock | tail -n 1 )
        bundle config set --local path 'vendor/bundle'
        bundle install --jobs 4 --retry 3
    - env:
        RAILS_MASTER_KEY: "${{ secrets.RAILS_MASTER_KEY }}"
      run: RAILS_ENV=test bundle exec rspec

我在回购配置中有秘密设置:

必要的加密配置存储在test.enc.yml中。

代码语言:javascript
复制
active_record_encryption:
  primary_key: u▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉
  deterministic_key: 4▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉
  key_derivation_salt: R▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉

我真的不喜欢使用RSpec retry/rerun的一些味道来修复它。我真的很想解决根本的问题。有人知道吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-08 10:23:04

在测试环境中加载credentials看起来更像是一个问题。今天我偶然发现了类似的错误,但我不想通过RAILS_MASTER_KEY测试环境。我所做的是将这段代码添加到config/environments/test.rb文件中:

代码语言:javascript
复制
config.active_record.encryption.primary_key = 'test'
config.active_record.encryption.deterministic_key = 'test'
config.active_record.encryption.key_derivation_salt = 'test'

除非在测试环境中不需要外部安全的DB,否则这将为您完成任务。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72481748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档