Pre-compiles test files to register LiveStyle modules in the manifest.
Why This Is Needed
Source files (.ex) are compiled by Mix before your app runs, so their LiveStyle
definitions are in the manifest when needed. Test files (.exs) are different -
they're evaluated by ExUnit at runtime, which can cause race conditions where
tests start before all test modules have registered their styles.
This task compiles test files in a subprocess to populate the manifest before ExUnit starts, ensuring all LiveStyle definitions are available.
When You Need This
Only add this task if your tests define LiveStyle modules. For example:
defmodule MyAppWeb.ComponentTest do
use ExUnit.Case
# This module needs to be in the manifest before tests run
defmodule TestStyles do
use LiveStyle
class :test_button, color: "red"
end
test "renders with correct class" do
# Test uses TestStyles
end
endIf your tests only use styles defined in lib/ (not define new ones), you
don't need this task.
Setup
Add this task to your test alias in mix.exs:
defp aliases do
[
test: ["live_style.setup_tests", "test"]
]
endUsage
The task runs automatically before tests via the alias:
mix testOr run manually:
mix live_style.setup_tests