Application area attribute
Configure a test environment in scope of the particular application area with the AppArea annotation.
Format
Copied to your clipboard#[AppArea(string $area)]
Parameters
- area
- Can take any value from the list below
\Magento\Framework\App\Area::AREA_GLOBAL\Magento\Framework\App\Area::AREA_ADMINHTML\Magento\Framework\App\Area::AREA_FRONTEND\Magento\Framework\App\Area::AREA_WEBAPI_REST\Magento\Framework\App\Area::AREA_WEBAPI_SOAP\Magento\Framework\App\Area::AREA_CRONTAB\Magento\Framework\App\Area::AREA_GRAPHQL
 
 - Can take any value from the list below
 
Fallback sequence
- Test method
 - Test class
 - Default application area, which is 
global 
Test class attribute
A test class attribute enables the specified application area for all tests in the test class.
Test method attributes override test class attributes.
Example:
Copied to your clipboard#[AppArea('adminhtml')]namespace Vendor\Module;class ClassToTest extends \PHPUnit\Framework\TestCase{public function testOne(){//...}#[AppArea('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 method attribute
A test method attribute is used to configure the environment in scope of the specified application area for the test method. The application is reinitialized in the corresponding scope each time you specify a different area.
Example:
Copied to your clipboardnamespace \Vendor\Module;class ClassToTest extends \PHPUnit\Framework\TestCase{// executes the test in scope of the global areapublic function testOne(){//...}// reinitializes the application and executes the test in scope of the frontend area#[AppArea('frontend')]public function testTwo(){//...}// reinitializes the application and executes the test in scope of the adminhtml area#[AppArea('adminhtml')]public function testThree(){//...}// reinitializes the application and executes the test in scope of the global areapublic function testFour(){//...}// executes in scope of the global areapublic function testFive(){//...}}

