Pm4ExUnit (pm4exunit v26.11.12)
Copy MarkdownProcess Mining, Conformance Checking, and Temporal SLA Verification for ExUnit.
The Elixir native counterpart to pm4pytest.
Usage in ExUnit Tests:
defmodule MyProcessTest do
use ExUnit.Case
use Pm4ExUnit
test "order saga satisfies FSM conformance", %{pm4_session: session} do
session |> emit_event("e1", :order_created)
session |> emit_event("e2", :payment_processed)
session |> emit_event("e3", :order_fulfilled)
assert_conformance(session, [
[:order_created, :payment_processed, :order_fulfilled]
], min_fitness: 1.0)
end
test "sla latency gate", %{pm4_session: session} do
t0 = DateTime.utc_now()
t1 = DateTime.add(t0, 2, :second)
session |> emit_event("e1", :start_scan, timestamp: t0)
session |> emit_event("e2", :finish_scan, timestamp: t1)
assert_sla(session, :start_scan, :finish_scan, max_seconds: 5.0)
end
end