PR# 19162 Autotest won't generate tests
Problem Report Summary
Submitter: colin-adams
Category: EiffelTest
Priority: Medium
Date: 2015/11/30
Class: Bug
Severity: Serious
Number: 19162
Release: 15.11
Confidential: No
Status: Analyzed
Responsible:
Environment: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
Synopsis: Autotest won't generate tests
Description
I'm trying to generate automatic tests from open classes. This fails. At Manu's suggestion I tried substituting class STRING instead. Again, no classes get generated. Attached is a screencast.
To Reproduce
Follow the screencast.
Problem Report Interactions
Reset tools layout restore the Groups pane.
Changing to void_safety=none causes compilation to work (clearly autotest is still not void-safe aware. So I have to add preconditions :-( ). But even after subsequently compiling from scratch, Groups pane will not appear.
So I tried the following experiment. I create a class AUTOTEST and made it the root class. It looks like this: note description: "Summary description for {AUTOTEST}." author: "" date: "$Date$" revision: "$Revision$" class AUTOTEST create make feature {NONE} -- Initialization make -- Initialization for `Current'. do -- nothing to do end feature -- Classes under test gmp_integer: detachable GMP_INTEGER gmp_rational: detachable GMP_RATIONAL gmp_float: detachable GMP_FLOAT end I then opened GMP_INTEGER, GMP_FLOAT and GMP_RATIONAL in the editor, went through the generate open classes dialog, and it works (that is, it generates some tests, some pass, some fail, some are invalid). I still can't see the Groups pane though, so I can't open additional classes that I want to test (remaining problem one). And having to create a special class for a root is a real pain (remaining problem two) And I'm also interested in extracted classes. How am I supp .... Output truncated, Click download to get the full message
This seems to indicate an error somewhere. No groups pane means there was no compilation or an error at degree 6. What if you compile from scratch?
I just tried with ANY. Now NO classes are visible (that make sense), the Groups pane won't appear, and attempting to select generate open classes does nothing (the dialog doesn't even appear).
Have you tried to specify ANY as root class? Otherwise the base_testing library is just for EiffelBase, a collection of helper classes that makes it easy to test EiffelBase and other libraries. What matters is the inclusion of the testing library.
So the first difference I found between my ECF and yours was the void_safety setting. I thankfully set to void_safety="all". As expected, this made no difference. The second difference was the root class. Mine had all classes. Yours had AUTOTEST. The third difference was that this base_testing library was not in my system (EiffelStudio had added the testing library, but not the base_testing library). After making those two changes, I can now generate tests for open classes, when the open class is STRING. But I can no longer even see my own classes as the are not compiled into the system (not reachable from class AUTOROOT). So I changed back to all classes root. Now I can see my classes again, but I can't generate classes for open tests (mine, or STRING). I really don't know WHAT I'm supposed to do.
It works with testing-safe.ecf. Note that I was using a non-void-safe ECF in my case, as the tutorial says autotest won't work with void-safe projects. Obviously the tutorial is outdated.
Make sure you have write permission to $ISE_LIBRARY/library/base/testing.
I followed your steps using the EiffelBase testing configuration file on Windows and it worked. I tried on Mac OS X (which is the same as Linux) and it worked to. Could you try to repeat the same steps by compiling the project in $ISE_LIBRARY/library/base/testing/testing-safe.ecf? To verify the issue is not related to the configuration.
The attachment was not included. You are required to click upload after browsing for the file before submitting. Sorry for the inconvenience.