首页 > 解决方案 > 带有 Codebuild 的 CICD 管道不允许 Node JS 应用程序在测试中创建新目录

问题描述

我正在构建一个 Node JS 应用程序。我正在使用 AWS Codepipeline 为我的应用程序构建 CICD 管道,并且 AWS Codebuild 将这两者集成在一起。

但是我现在在运行涉及创建新目录或文件的测试时遇到问题,因为应用程序不会在 Codebuild 中创建新目录或文件,因为测试是在 Codebuild 中运行的。我的测试正在调用以下函数来创建新目录。

const createDirectoryForFileIfNotExists = (directory) => {
  if (! directory) {
    return;
  }
  let segments = directory.split("/");
  if (segments.length < 1) {
    return;
  }
  let checkDirectory = "";
  for (let i= 0; i < segments.length; i++) {
    if (checkDirectory == "") {
      checkDirectory = segments[i];
    } else {
      checkDirectory = checkDirectory + "/" + segments[i];
    }

    if (!fs.existsSync(checkDirectory)) {
      fs.mkdirSync(checkDirectory);
    }
  }
}

但是当测试在 Codebuild 中运行时,我收到以下错误。

ENOENT: no such file or directory, mkdir

但是当我在服务器上或本地运行测试时,这完全没问题。传递给函数的参数是this。

/codebuild/output/src120020864/src/test_storage/payment-proof

我该如何解决这个问题?

标签: node.jsaws-codepipelineaws-codebuild

解决方案


推荐阅读