<aside>
</aside>
noxfile.py์ ํ
์คํธ ์คํ ์ ์ฉ ์ธ์
(์: tests) ์ ์session.install()๋ก Nox ์ธ์
๊ฒฉ๋ฆฌ ํ๊ฒฝ์ ํ์ ํจํค์ง(pytest, ํ๋ฌ๊ทธ์ธ, ํ๋ก์ ํธ ์ฝ๋) ์ค์น ๋ฐฉ๋ฒ ์ดํดrequirements-dev.txt)๋ก ํ
์คํธ ์์กด์ฑ ๊ด๋ฆฌ ๋ฐ ์ค์น ๋ฐฉ๋ฒ ์๊ธฐsession.run()์ผ๋ก Nox ์ธ์
๋ด pytest ๋ช
๋ น์ด ์คํ ๋ฐฉ๋ฒ ์ดํดsession.run() ํตํด pytest ๋ช
๋ น์ด์ ์ธ์(์: v, -cov) ์ ๋ฌ ๋ฐฉ๋ฒ ์๊ธฐnox -s tests๋ก ํน์ ํ
์คํธ ์ธ์
์คํ ๋ฐฉ๋ฒ ๋ณต์ต, ์ผ๊ด๋ ํ
์คํธ ํ๊ฒฝ ํ๋ณด ์ด์ ์ดํดํ๋ก์ ํธ ๊ตฌ์กฐ:
graph TD
A(my-pytest-project) --> B(.venv);
A --> C(mycalc);
A --> D(tests);
A --> E(pytest.ini);
A --> F(noxfile.py tests ์ธ์
์ถ๊ฐ);
A --> G(requirements-dev.txt ํ
์คํธ ์์กด์ฑ ํ์ผ);
C --> ...;
D --> ...;
style B fill:#eee,stroke:#333,stroke-dasharray: 5 5;
style C fill:#ccf,stroke:#333;
style D fill:#cfc,stroke:#333;
style E fill:#fef,stroke:#333;
style F fill:#ffc,stroke:#333;
style G fill:#eee,stroke:#333;
requirements-dev.txt (์ ํ์ผ - ํ๋ก์ ํธ ๋ฃจํธ์ ์์ฑ):noxfile.py (tests ์ธ์
์ถ๊ฐ):session.install() ๊ณผ session.run() โ๏ธsession.install(*args): ํ์ฌ Nox ์ธ์
์ ๊ฒฉ๋ฆฌ๋ ์์ ๊ฐ์ ํ๊ฒฝ์ Python ํจํค์ง ์ค์น (pip install๊ณผ ์ ์ฌ).
session.install("pytest", "requests")session.install("-r", "requirements-dev.txt")session.install(".") ๋๋ session.install("-e", ".") (์ค์!)session.run(*args, external=False, **kwargs): ์ธ์
๊ฐ์ ํ๊ฒฝ ๋ด์์ ๋ช
๋ น์ด ์คํ.
"pytest", "python"). ์ดํ ์ธ์: ๋ช
๋ น์ด ์ต์
/์ธ์.session.run("pytest", "-v", "-k", "add") (ํฐ๋ฏธ๋์์ pytest -v -k add ์คํ๊ณผ ๋์ผ)external=True (์ ํ): ๊ฐ์ ํ๊ฒฝ ์ธ ์์คํ
์ ์ญ ๋ช
๋ น์ด ์คํ ์ (๋ณด์ ์ฃผ์).