<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
(์ ํ): ๊ฐ์ ํ๊ฒฝ ์ธ ์์คํ
์ ์ญ ๋ช
๋ น์ด ์คํ ์ (๋ณด์ ์ฃผ์).