代码之家  ›  专栏  ›  技术社区  ›  bbyabbya

当我尝试实现express中的“npm test”后的“command not found”时(参见jest、supertest、env)

  •  0
  • bbyabbya  · 技术社区  · 3 年前

    我正试图通过jot和express中的supertest来实现TESTCODE。

    但当我打字的时候 npm test 在vsc终端中,出现了以下问题:

    .env文件已包含私有数据。所以当我尝试注册和签约时,它是有效的,但当我这样做的时候 npm测试 它引发了这个问题。

    我想可能是因为杰斯不识字 .env. 文件正确。

    vsc终端

    env-cmd ./.env jest --watch
    
    ./.env: line 1: DATABASE_USERNAME: command not found
    ./.env: line 2: DATABASE_PASSWORD: command not found
    ./.env: line 3: DATABASE_NAME: command not found
    ./.env: line 4: DATABASE_HOST: command not found
    ./.env: line 5: DATABASE_PORT: command not found
    npm ERR! Test failed.  See above for more details.
    
    

    package.json

    {
      "name": "server",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "start": "nodemon index.js",
        "test": "env-cmd ./.env jest --watch"
      },
      "jest": {
        "testEnvironment": "node"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "dependencies": {
        "axios": "^0.21.0",
        "body-parser": "^1.19.0",
        "cors": "^2.8.5",
        "dotenv": "^8.2.0",
        "express": "~4.16.1",
        "express-validator": "^6.9.2",
        "i18n": "^0.13.2",
        "i18n-express": "^1.1.3",
        "jsonwebtoken": "^8.5.1",
        "morgan": "^1.10.0",
        "mysql2": "^2.1.0",
        "sequelize": "^6.3.5"
      },
      "devDependencies": {
        "babel-cli": "^6.26.0",
        "babel-preset-env": "^1.7.0",
        "dotenv": "^8.2.0",
        "jest": "^26.6.3",
        "nodemon": "^2.0.6",
        "sequelize-cli": "^6.2.0",
        "superagent": "^6.1.0",
        "supertest": "^6.1.1",
        "env-cmd": "^10.1.0"
      }
    }
    
    1 回复  |  直到 3 年前
        1
  •  0
  •   Dharman TechyTech    3 年前

    我运行了你的测试脚本,它奏效了,但请确保:

    1. 已为项目目录授予足够的权限,请运行 chmod -R a+rwx /your/project/path

    2. 文件结构正确

    • 项目
      • .env
      • package.json
        2
  •  0
  •   bbyabbya    3 年前

    谢谢你的建议。

    我的文件结构是

    project
        server
            .env
            package.json
    

    当我第一次键入npm test时,它得到了这个结果 => spawn ./.env EACCES

    所以我输入了chmod-R 777 server/和npm test 然后它得到了这个结果

     > env-cmd ./.env jest --watch
    
    ./.env: line 1: DATABASE_USERNAME: command not found
    ./.env: line 2: DATABASE_PASSWORD: command not found
    ./.env: line 3: DATABASE_NAME: command not found
    ./.env: line 4: DATABASE_HOST: command not found
    ./.env: line 5: DATABASE_PORT: command not found
    npm ERR! Test failed.  See above for more details.
    

    然后我输入了你说的chmod-R a+rwx server/和npm test 然后它做出了同样的结果。