I’m starting to use the Skein functionality in the Inform 7 IDE. Thought it might be useful to save different skein configurations depending on what kind of unit testing I am doing. Putting all of the possible scenarios in at once is useful for automated testing of everything, but sometimes I just want to test specific scenarios. Plus, the screen starts to get pretty cluttered and it’s difficult to find the specific path I want sometimes.
I see the Import into Skein choice in the File Menu, but where is the Export Skein choice?
As I’m sure you realize, the answer is “that feature doesn’t exist”. The skein was designed to hold the sum of the paths you’re interested in.
You can swap out the
project.inform/Skein.skein file in its entirety.
Okay, I dug a little more and found out that Zoom can actually create skein files that can then be imported into Inform 7. Looks like the Zoom skein set up is more like the version of the skein that is in the documentation.
I use the “test” function to abbreviate skein chains.
In the source code I put something like:
Test ballroom with "n / u / e / dance with darcy / slap darcy".
(and so on. BTW, note the space either side of the slashes.)
And then in the skein I only need a node that says “Test ballroom”.
You can use any sequence of commands, except “restart” and “undo”, because they cause the script to get stuck in a loop.
Test scripts may call other test scripts, so I could have
Test all with "test ballroom / test shrubbery / test guards".
Note the concluding period is outside the quote marks.
You can have as many test scripts as you like, also amend the test script at any time (though that will cause the transcript to turn red and you’ll have to “bless” it again.)
I’m not saying that skein unwieldiness isn’t a problem, mind you. I wound up not using the skein at all on Hadean Lands. It wound up being easier to write external test scripts.
What’s the significance of the spaces?
I7 requires them. I’m not sure why; maybe just for readability.
Or maybe it’s to allow commands with slashes? So that
Test me with "test1 / test/2 / test3"
will issue the 3 commands
Doesn’t answer the question of how you test a command which contains a slash surrounded by spaces. But if you go too far down that road you wind up backslashing the backslashes in your escaped strings, so I can understand why Inform cuts it off.
To keep the skein a bit more manageable you can Lock specific interesting paths and then periodically Trim the whole so that only those interesting paths remain.
If one of these paths is a complete playthrough then you can specially tag it in order to automatically generate a walkthrough transcript on release. Or just use it to verify that you haven’t broken anything in the critical path while working on another area.
Hmm, are you sure about the slashes needing surrounding spaces? It works without the spaces both on Mac and on Linux. All documentation examples use surrounding spaces but I think that’s just for convention.
I7 spat out my tests where I didn’t surround the slash with spaces, but that was, I admit, several versions ago. Having acquired the habit, I never lost it, I guess.