PhpUnit.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Listener of PHPUnit built-in events
  8. */
  9. namespace Magento\TestFramework\Event;
  10. class PhpUnit implements \PHPUnit\Framework\TestListener
  11. {
  12. /**
  13. * Used when PHPUnit framework instantiates the class on its own and passes nothing to the constructor
  14. *
  15. * @var \Magento\TestFramework\EventManager
  16. */
  17. protected static $_defaultEventManager;
  18. /**
  19. * @var \Magento\TestFramework\EventManager
  20. */
  21. protected $_eventManager;
  22. /**
  23. * Assign default event manager instance
  24. *
  25. * @param \Magento\TestFramework\EventManager $eventManager
  26. */
  27. public static function setDefaultEventManager(\Magento\TestFramework\EventManager $eventManager = null)
  28. {
  29. self::$_defaultEventManager = $eventManager;
  30. }
  31. /**
  32. * Constructor
  33. *
  34. * @param \Magento\TestFramework\EventManager $eventManager
  35. * @throws \Magento\Framework\Exception\LocalizedException
  36. */
  37. public function __construct(\Magento\TestFramework\EventManager $eventManager = null)
  38. {
  39. $this->_eventManager = $eventManager ?: self::$_defaultEventManager;
  40. if (!$this->_eventManager) {
  41. throw new \Magento\Framework\Exception\LocalizedException(__('Instance of the event manager is required.'));
  42. }
  43. }
  44. /**
  45. * {@inheritdoc}
  46. * @SuppressWarnings(PHPMD.ShortVariable)
  47. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  48. */
  49. public function addError(\PHPUnit\Framework\Test $test, \Exception $e, $time)
  50. {
  51. }
  52. /**
  53. * {@inheritdoc}
  54. * @SuppressWarnings(PHPMD.ShortVariable)
  55. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  56. */
  57. public function addFailure(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\AssertionFailedError $e, $time)
  58. {
  59. }
  60. /**
  61. * {@inheritdoc}
  62. * @SuppressWarnings(PHPMD.ShortVariable)
  63. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  64. */
  65. public function addIncompleteTest(\PHPUnit\Framework\Test $test, \Exception $e, $time)
  66. {
  67. }
  68. /**
  69. * {@inheritdoc}
  70. * @SuppressWarnings(PHPMD.ShortVariable)
  71. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  72. */
  73. public function addRiskyTest(\PHPUnit\Framework\Test $test, \Exception $e, $time)
  74. {
  75. }
  76. /**
  77. * {@inheritdoc}
  78. * @SuppressWarnings(PHPMD.ShortVariable)
  79. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  80. */
  81. public function addSkippedTest(\PHPUnit\Framework\Test $test, \Exception $e, $time)
  82. {
  83. }
  84. /**
  85. * {@inheritdoc}
  86. */
  87. public function startTestSuite(\PHPUnit\Framework\TestSuite $suite)
  88. {
  89. /* PHPUnit runs tests with data provider in own test suite for each test, so just skip such test suites */
  90. if ($suite instanceof \PHPUnit\Framework\DataProviderTestSuite) {
  91. return;
  92. }
  93. $this->_eventManager->fireEvent('startTestSuite');
  94. }
  95. /**
  96. * {@inheritdoc}
  97. */
  98. public function endTestSuite(\PHPUnit\Framework\TestSuite $suite)
  99. {
  100. if ($suite instanceof \PHPUnit\Framework\DataProviderTestSuite) {
  101. return;
  102. }
  103. $this->_eventManager->fireEvent('endTestSuite', [$suite], true);
  104. }
  105. /**
  106. * {@inheritdoc}
  107. */
  108. public function startTest(\PHPUnit\Framework\Test $test)
  109. {
  110. if (!$test instanceof \PHPUnit\Framework\TestCase || $test instanceof \PHPUnit\Framework\Warning) {
  111. return;
  112. }
  113. $this->_eventManager->fireEvent('startTest', [$test]);
  114. }
  115. /**
  116. * {@inheritdoc}
  117. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  118. */
  119. public function endTest(\PHPUnit\Framework\Test $test, $time)
  120. {
  121. if (!$test instanceof \PHPUnit\Framework\TestCase || $test instanceof \PHPUnit\Framework\Warning) {
  122. return;
  123. }
  124. $this->_eventManager->fireEvent('endTest', [$test], true);
  125. }
  126. /**
  127. * {@inheritdoc}
  128. */
  129. public function addWarning(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\Warning $e, $time)
  130. {
  131. }
  132. }