jubilant-tests

Automate end-to-end Juju charm integration testing with Jubilant and pytest-jubilant.

1|Updated Feb 8, 2026
One-click install
npx skills add https://github.com/tonyandrewmeyer/cantrip --skill jubilant-tests
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: jubilant-tests
Source: https://github.com/tonyandrewmeyer/cantrip/tree/main/src/cantrip/skills/jubilant-tests
Command: npx skills add https://github.com/tonyandrewmeyer/cantrip --skill jubilant-tests

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Charms require reliable integration tests; Jubilant with pytest-jubilant provides a structured, scalable approach to automate end-to-end Juju charm validation in real or CI environments.

Core Features & Use Cases

  • Jubilant-based API: control Juju, deploy charms, run actions, and verify model status in real time.
  • Isolated test contexts: leverage dedicated Juju models to avoid cross-test interference.
  • CI-ready workflows: guidance for integrating tests into CI with standard fixtures and patterns.

Quick Start

Run the integration tests with pytest to validate charms via Jubilant.

Frequently Asked Questions about jubilant-tests

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate Juju charm integration tests with pytest?

Automate Juju charm integration tests by using pytest-jubilant to control Juju, deploy charms, run actions, and verify model status in isolated test contexts. This framework provides structured patterns and fixtures for deploying, waiting, and asserting outcomes in local or CI environments.

What is Jubilant used for in charm testing?

Jubilant provides an API to control Juju and automate end-to-end charm validation. It manages dedicated Juju models to avoid cross-test interference, deploys charms, runs actions, and verifies relations and COS-lite observability checks in real time.

Can I run Jubilant integration tests in a CI environment?

Yes, Jubilant integration tests are CI-ready. They use standard pytest fixtures and structured test patterns to validate charm installations, actions, and relations, ensuring repeatable test harnesses with dedicated Juju models in continuous integration workflows.

How do I test COS-lite observability for Juju charms?

Test COS-lite observability checks by deploying charms with Jubilant and asserting outcomes using pytest-jubilant. The framework validates charm relations and observability scenarios within a dedicated Juju model to ensure accurate end-to-end validation.

Does Jubilant support isolated test contexts for Juju models?

Yes, Jubilant leverages dedicated Juju models to create isolated test contexts. This prevents cross-test interference and provides a repeatable test harness with fixture-based charm paths for deploying, waiting, and asserting validation outcomes.

What's the best way to validate Juju charm actions and relations?

Validate Juju charm actions and relations by automating end-to-end tests with Jubilant and pytest-jubilant. This approach deploys charms, runs actions, and verifies model status using structured test patterns and dedicated fixtures in local or CI environments.