Im not sure of a way to pass one into the runner, but you could make symbolic pages that define your variables differently and then you just call the different page. For example in our setup we can run our tests with in-memory repositories or with MySQl as the database. This allows us to run the entire suite very fast and then CI can run the slow ones.
So we have two pages that contain a symbolic link. The properties looks like this:
<?xml version="1.0"?>
<properties>
<Help></Help>
<LastModified>20090427102431</LastModified>
<Search/>
<Suite/>
<Suites></Suites>
<SymbolicLinks>
<MustPass>.FrontPage.MustPass</MustPass>
</SymbolicLinks>
<saveId>1231186112073</saveId>
<ticketId>3122308994585074329</ticketId>
</properties>
and the contents looks like this:
!define repository_type {InMemory}
This is the test suite for in-memory tests. Run this instead of running the !-MustPass-! suite.
!contents -R2 -g -p -f -h
Then the runner can get the pages to run as a param something like this:
.\dotnet\TestRunner -format xml -results results.xml localhost 8080 FrontPage.MemoryMustPass