feat(test): chrome-use test <suite.yaml> — re-runnable browser test suites
Turn repetitive browser checks into unit-test-style YAML suites. Steps reuse chrome-use's own commands; assertions (url/visible/hidden/text/count/eval) compile to a single truthy `eval`. The runner re-invokes the binary per step (inherits all flag/launch/daemon/ref semantics; the daemon stays up so each step is a fast socket call), launches an isolated browser by default, captures a screenshot on failure, and exits non-zero for CI. `setup: account:` injects a cookie-use login. Ships a `test` skill (skills get test). Unit-tested step/assert compilation.
This commit is contained in:
@@ -11,6 +11,7 @@ mod install;
|
||||
mod native;
|
||||
mod output;
|
||||
mod skills;
|
||||
mod test_runner;
|
||||
#[cfg(test)]
|
||||
mod test_utils;
|
||||
mod upgrade;
|
||||
@@ -721,6 +722,19 @@ fn main() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle `test <suite.yaml>`: run a browser test suite. It orchestrates by
|
||||
// re-invoking this binary per step, so it lives outside the normal dispatch.
|
||||
if clean.first().map(|s| s.as_str()) == Some("test") {
|
||||
let Some(suite) = clean.get(1) else {
|
||||
eprintln!(
|
||||
"{} usage: chrome-use test <suite.yaml> [--launch | --session <name>]",
|
||||
color::error_indicator()
|
||||
);
|
||||
exit(2);
|
||||
};
|
||||
exit(test_runner::run_test(suite, &flags));
|
||||
}
|
||||
|
||||
// Handle skills command (doesn't need daemon)
|
||||
if clean.first().map(|s| s.as_str()) == Some("skills") {
|
||||
skills::run_skills(&clean, flags.json);
|
||||
|
||||
Reference in New Issue
Block a user