Application Area Annotation in the Integration Testing Framework
Configure a test environment in scope of the particular application area with the @magentoAppArea
annotation.
Format
1
2
3
/**
* @magentoAppArea <area code>
*/
Fallback sequence
- Test annotation
- Test case annotation
- Default application area, which is
global
Test case annotation
A test case annotation enables the specified application area for all tests in the test case.
Test annotations override test case annotations.
Example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
* @magentoAppArea adminhtml
*/
namespace Vendor\Module;
class ClassToTest extends \PHPUnit\Framework\TestCase
{
public function testOne()
{
//...
}
/**
* @magentoAppArea frontend
*/
public function testTwo()
{
//...
}
public function testThree()
{
//...
}
}
testOne()
and testThree()
are set to run in scope of the adminhtml
application area, whereas testTwo()
is set to run in scope of the frontend
area.
Test annotation
A test annotation is used to configure the environment in scope of the specified application area for the test. Magento is reinitialized in the corresponding scope each time you specify a different area.
Example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
namespace \Vendor\Module;
class ClassToTest extends \PHPUnit\Framework\TestCase
{
// executes the test in scope of the global area
public function testOne()
{
//...
}
// reinitializes the application and executes the test in scope of the frontend area
/**
* @magentoAppArea frontend
*/
public function testTwo()
{
//...
}
// reinitializes the application and executes the test in scope of the adminhtml area
/**
* @magentoAppArea adminhtml
*/
public function testThree()
{
//...
}
// reinitializes the application and executes the test in scope of the global area
public function testFour()
{
//...
}
// executes in scope of the global area
public function testFive()
{
//...
}
}