shb Posted September 14, 2012 Report Share Posted September 14, 2012 The class SubCase.lvclass inherits from the test case myTests.lvclass (inheriting TestCase.lvclass). When loading SubCase.lvclass in VI Tester only the tests defined in this class are shown. I expected to also get the test VIs from the parent class. At least this is what I am used to from python unittest. I tried this because I have similar VIs I want to do 3 test on each. The connector pane of the VIs are similar, but some data types are different. So I wanted to handle this differences in a VI which is used in all 3 tests. In the subclasses I wanted only to overwrite this VI. My words are probably unclear, maybe this structur explains more. myTests_A.lvclass, inheriting TestCase.lvclass CommonVI.vi Test 1.vi, calling CommonVI.vi Test 2.vi, calling CommonVI.vi Test 3.vi, calling CommonVI.vi myTests_B.lvclass, inherinting myTests_A.lvclass CommonVI.vi Link to comment Share on other sites More sharing options...
shb Posted September 14, 2012 Author Report Share Posted September 14, 2012 I just stumbled over the application method "LabVIEW Class:All Methods of LVClass Method" which also lists the inherited VIs. Link to comment Share on other sites More sharing options...
Omar Mussa Posted September 17, 2012 Report Share Posted September 17, 2012 This is an interesting idea and one we've thought about as well. One question I have - if you run the parent test case directly, do you skip execution of the tests in the parent class? How does the parent test case get treated? Ideas are welcome. Link to comment Share on other sites More sharing options...
shb Posted September 18, 2012 Author Report Share Posted September 18, 2012 I see several possibilities: (parent class is myTests_A.lvclass) mark the parent class as abstract use the skip VI in ComonVI.vi in the parent class implement the first test case in the parent class (probably not a clean design) The decision of choosing the design could be left to the test case writer. When the parent class is not in the project (only in dependencies), it is not loaded with the project anyway. So it is easy to leave it out. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.