Continuous integration jestjs-如何在ci中从cli参数化测试执行?

Continuous integration jestjs-如何在ci中从cli参数化测试执行?,continuous-integration,jestjs,Continuous Integration,Jestjs,我有4个环境: 开发人员(开发人员领域) 测试(测试区) 预制作(预制作环境) 生产(生产环境) 这些环境需要不同的配置来执行测试(不同的URL、用户名、资产等) 如何在持续集成中将这些配置作为参数传递给jest?正如您所知,jest不允许传递可用于处理运行时加载的自定义配置的自定义参数 我提议一个适合我的解决办法 创建一个配置文件,例如config.js 编辑config.js并导出环境切换模块 为您需要的每个环境创建一个javascript文件 test-configuration.j

我有4个环境:

  • 开发人员(开发人员领域)
  • 测试(测试区)
  • 预制作(预制作环境)
  • 生产(生产环境)
这些环境需要不同的配置来执行测试(不同的URL、用户名、资产等)

如何在持续集成中将这些配置作为参数传递给jest?

正如您所知,jest不允许传递可用于处理运行时加载的自定义配置的自定义参数

我提议一个适合我的解决办法

  • 创建一个配置文件,例如config.js
  • 编辑config.js并导出环境切换模块
  • 为您需要的每个环境创建一个javascript文件
    • test-configuration.js
    • production-configuration.js
  • 在环境变量中编辑这些文件
  • 例如,test-configuration.js将

    process.env.ENVIRONMENT = "test"
    
  • 加载测试文件的配置,因为它是静态文件
  • 使用jest添加用于加载环境变量的setupfile
  • 例如,跑步

    jest --setupFiles=./test-configuration.js
    
    jest将加载test-configuration.js文件,该文件将在“process.env.ENVIRONMENT”变量上设置“test”,因此config.js文件将在“test”环境上“切换”,所有测试都将使用它

    所以现在您可以(或CI可以)根据需要加载配置

    const config = require('./config.js')
    
    jest --setupFiles=./test-configuration.js