I came across this while adding to tests for Chimera.
Summary: make sure 'teardown' actions are in an AfterMethod (or AfterClass)
annotated method, not in the test method.
In the 'happy path' (all tests pass), the test finishes by calling
ChimeraViewFrame.closeViewer(true);
which does a force close of the Jalview viewer and Chimera - as wanted.
But if a test assertion fails before that is reached, then it is not executed,
and instead we hit the teardown, in this case:
AfterClass
Desktop.instance.closeAll_actionPerformed(null);
which results in a call to
ChimeraViewFrame.closeViewer(false);
which puts up a user dialogue "Do you want to close Chimera" - just what we
wanted to avoid while unit testing.
Solution:
Move closeViewer(true) into an AfterMethod teardown instead.
That ensures it runs even if the test fails.
The TestNG equivalent of a finally block [😊] .
Probably stating the obvious, but something to look out for when facing those
annoying dialogues in tests.
mungo
Mungo Carstairs
Jalview Computational Scientist
The Barton Group
Division of Computational Biology
School of Life Sciences
University of Dundee, Dundee, Scotland, UK.
www.jalview.org<http://www.jalview.org/>
www.compbio.dundee.ac.uk<http://www.compbio.dundee.ac.uk/>
The University of Dundee is a registered Scottish Charity, No: SC015096
_______________________________________________
Jalview-dev mailing list
[email protected]
http://www.compbio.dundee.ac.uk/mailman/listinfo/jalview-dev