09.08.2011 | |
Bugzilla ticket: 350389, improve Scout RT testing support | |
BSI ticket: 103'068 | |
Replaced ClientSessionClass annotation by a more powerful ClientTest annotation that has the following features: | |
o annotation can be applied on class-level as well as on a test case level (method). | |
o @BeforeClass and @AfterClass methods are executed in the same session defined on class-level | |
o @Before, @Test and @After are executed per test method in the same session defined on class-level | |
or in a separate session if the @Test method is also annotated with @ClientTest | |
o Sessions are shared as long as they are not marked with @ClientTest(foreceNewSession = true) | |
o Tests can be executed as different users. Controlled by @ClientTest(runAs = "principal") | |
o The IClientSession class can be provided by the annotation @ClientTest(clientSessionClass = MyClientSession.class) | |
or by setting the default value ScoutClientTestRunner.setDefaultClientSessionClass(MyClientSession.class). The value | |
provided by the @ClientTest annotation is used if both are provided. | |
o An existing or new IClientSession is provided by an implementation of IClientSessionProvider. The default provider is | |
DefaultTestClientSessionProvider and is set on ScoutClientTestRunner.setDefaultClientSessionProvider(). It can be | |
overridden using the @ClientTest(clientSessionProvider = MyClientSessionProvider.class) annotation. | |
Migration: | |
o remove all @ClientSessionClass annotations | |
o set the project's client session class in the client test applications (headless and different GUI strategies) | |
ScoutClientTestRunner.setDefaultClientSessionClass(ClientSession.class); |