Reasons why "Test me with" wouldn't run?

Hey All–

So finally I am trying to learn the “test me” thing so I don’t have to run through a long game a zillion times to work on the end sections (yes-- in my previous games I just played through them until I was ready to barf).

I have removed any pauses (like PRESS ANY KEY) and put in the code:

Test me with "s / w / d / d / n".... etc

There’s no error message, but the test command doesn’t run-- it just starts off in the first room. There’s not very much in the docs on TEST ME, and I can’t find much here. The commands are correct, and I tried it with just the first command ( Test me with “s”) and that doesn’t fire either. Either my syntax is wrong (the syntax in the docs is command-space-slash-space-command) or something else is going on. Is there any other reason why this wouldn’t work?

3 Likes

Sorry if I’m misunderstanding the issue, but just to be clear, the tests are not supposed to run automatically on startup. You need to enter “test me” at the prompt.

By the way, the “me” is just a convention. You can name the tests differently, and you can also chain them and so on:

Test part1 with "x me".
Test part2 with "i / jump".
Test wholegame with "test part1 / test part2".
4 Likes

No, you’re not misunderstanding; I’m just dumb as dirt. I never found anything that stipulated I had to enter the command at the prompt. I assumed it would just transport me without me having to do anything.

All is good. Thanks.

4 Likes

This might not be what you’re after, but I’ve found the skein is super helpful for testing late-game changes, since it lets you zoom along an arbitrary number of commands - and you can also maintain a couple of different branches if there are decision points or anything else that can change between playthroughs. Dunno if it doesn’t meet your needs or if feels overly complicated - that was definitely my first reaction, and it can take work to keep the thing pruned between testing runs. But it’s relatively easy to use in the simple way that lets you zoom to different parts of the story without much work.

3 Likes

You mentioned removing pauses for testing.

A way to remove any pauses for testing is to have

volume debug stuff - not for release

skip-pauses is a truth state that varies.

when play begins: now skip-pauses is true;

to wait-for-key-release: if skip-pauses, wait for any key;

Similarly, you can

nopausing is an action out of world.

understand "nopause" as nopausing.

carry out nopausing: now skip-pauses is true;

test me with "nopause/(etc)".

Also, two things I found with TEST ME that you may’ve figured, but might as well make sure (I didn’t see it right away): you can have

test w1 with "n/e/s/take all".
test w2 with "n/e/s/put ball in box".
test w3 with "n/n/enter clubhouse".
test wall with "test w1/test w2/test w3".

This is handy if you have bonus points–you can have a w2b and w2 where 1 gets the bonus points and 1 doesn’t.

This way it is also not too bad to tweak one test command if you want to test forking paths.

test w2b with "n/e/s/put ball in box/xyzzy".
test wallb with "test w1/w2b/w3".

And I always forget a period or extra line break after a “TEST X WITH” and the compiler gives a weird error.

2 Likes

There’s another feature lurking in test that I suspect is little known 'cause I’ve never seen anyone use it. But the docs clearly describe this test feature so it may just be that people don’t find it useful. Either way, you can add clauses like in the Conservatory or holding the ray gun or both to test assertions and then, before beginning to issue the related commands, if the player isn’t in the specified room, they’re moved to that room; if the player isn’t already holding that thing, the thing is moved to their inventory. (If they’re wearing the thing already, they’ll continue to be wearing it; otherwise it’s guaranteed that the player ends up carrying the thing per se.)

4 Likes

I note that the “in the…” part of the test is a major improvement in inform debugging, because GONEAR depends on the target location having at least an item, and often one need to debug three distinct path starting from a connector location whose often don’t offer story hooks for an item (and having a “teleport beacon item for testing” in a location can defeat in a spectacular manner the purpose of debugging commands…)

Best regards from Italy,
dott. Piergiorgio.

GONEAR depends on the target location having at least an item

GONEAR (location name) normally works.