
Security News
Bun 1.2.19 Adds Isolated Installs for Better Monorepo Support
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.
To install the latest version, run:
pip install pre qase-pytest
The new version 6.x of the Pytest reporter has breaking changes. To migrate from versions 4.x or 5.x, follow the upgrade guide.
Qase Pytest Reporter is configured in multiple ways:
qase.config.json
Environment variables override the values given in the config file, and command line options override both other values.
Configuration options are described in the configuration reference.
{
"mode": "testops",
"fallback": "report",
"testops": {
"project": "YOUR_PROJECT_CODE",
"api": {
"token": "YOUR_API_TOKEN",
"host": "qase.io"
},
"run": {
"title": "Test run title"
},
"batch": {
"size": 100
}
},
"report": {
"driver": "local",
"connection": {
"local": {
"path": "./build/qase-report",
"format": "json"
}
}
},
"framework": {
"pytest": {
"captureLogs": true
}
},
"environment": "local"
}
For detailed instructions on using annotations and methods, refer to Usage.
To link the automated tests with the test cases in Qase TestOps, use the @qase.id()
decorator.
Other test data, such as case title, system and custom fields,
can be added with @qase.title()
and @qase.fields()
:
from qase.pytest import qase
@qase.id(13)
@qase.title("My first test")
@qase.fields(
("severity", "critical"),
("priority", "high"),
("layer", "unit"),
("description", "Try to login to Qase TestOps using login and password"),
("preconditions", "*Precondition 1*. Markdown is supported."),
)
def test_example_1():
pass
@qase.id([14, 15])
def test_example_2():
pass
Each unique number can only be assigned once to the class or function being used.
To exclude a particular test from the report, use the @qase.ignore
decorator:
from qase.pytest import qase
@qase.ignore
def test_example_1():
pass
AssertionError
To capture the network logs, enable the http
option in the framework.capture
section
of the configuration file.
The Qase Pytest reporter will capture all HTTP requests and responses and save them as a test steps automatically.
To upload screenshots, logs, and other information to Qase.io,
use qase.attach()
.
It works both with files in the filesystem and with data available in the code.
There is no limit on the amount of attachments from a single test.
import pytest
from qase.pytest import qase
@qase.title("File attachments")
def test_example_1():
# attach files from the filesystem:
qase.attach("/path/to/file", "/path/to/file/2")
# to add multiple attachments, pass them in tuples:
qase.attach(
("/path/to/file/1", "application/json"),
("/path/to/file/3", "application/xml"),
)
@pytest.fixture(scope="session")
def driver():
driver = webdriver.Chrome()
yield driver
logs = "\n".join(str(row) for row in driver.get_log('browser')).encode('utf-8')
# attach logs from a code variable as a text file:
qase.attach((logs, "text/plain", "browser.log"))
driver.quit()
@qase.id(12)
def test_example_2(driver):
# attach the output of driver.get_screenshot_as_png() as a png image
qase.attach((driver.get_screenshot_as_png(), "image/png", "result.png"))
To mark a test step, either annotate a function with @qase.step()
,
or use the with qase.step()
context:
from qase.pytest import qase
@qase.step("First step") # test step name
def some_step():
sleep(5)
@qase.step("Second step") # test step name
def another_step():
sleep(3)
# ...
def test_example():
some_step()
another_step()
# test step hash
with qase.step("Third step"):
sleep(1)
By default, qase-pytest will create a new test run in Qase TestOps
and report results to this test run.
To provide a custom name for this run, add
the option --qase-testops-run-title
.
pytest \
--qase-mode=testops \
--qase-testops-api-token=<your api token here> \
--qase-testops-project=PRJCODE \ # project, where your testrun would be created
--qase-testops-run-title=My\ First\ Automated\ Run
Test results can be reported to an existing test run in Qase using its ID. This is useful when a test run combines tests from multiple sources:
For example, if the test run has ID=3, the following command will run tests and report results to this test run:
pytest \
--qase-mode=testops \
--qase-testops-api-token=<your api token here> \
--qase-testops-project=PRJCODE \ # project, where the test run is created
--qase-testops-run-id=3 # testrun id
Create a new testrun base on a testplan. Testrun in Qase TestOps will contain only those
test results. qase-pytest
supports selective execution.
pytest \
--qase-mode=testops \
--qase-testops-api-token=<your api token here> \
--qase-testops-project=PRJCODE \ # project, where your testrun exists in
--qase-testops-plan-id=3 # testplan id
FAQs
Qase Pytest Plugin for Qase TestOps and Qase Report
We found that qase-pytest demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.
Security News
Popular npm packages like eslint-config-prettier were compromised after a phishing attack stole a maintainer’s token, spreading malicious updates.
Security News
/Research
A phishing attack targeted developers using a typosquatted npm domain (npnjs.com) to steal credentials via fake login pages - watch out for similar scams.