I am building a continuous integration workflow using GitHub actions. This workflow will be used to run unit tests and test build status. The workflow will be used by a number of different people who have developed python package so I am trying to make it as general and modular as possible. My goal is to seperate the tasks of running unit tests and testing the build status of these packages, which leads me to my question, what are the differences between the commands `python setup.py test` and `pytest {package}`?

Specifically,

1. Does running unit tests with the command `pytest {package}` automatically build your package or is it not possible to run unit tests without building your package?
2. I know that setup.py is the build script for setuptools and I have read what the command `python setup.py test` does and it says it will: run unit tests after in-place build. So does this command use pytest by default then?

I also saw in the setuptools docs the build command, so to take a stab at answering my own questions, I would do `pytest {package}` for running unit tests only and `python setup.py build` to test the build status of the package.

Is that correct? 

Thank you very much.