Spring Parameterized / Теории JUnit Тесты - PullRequest
6 голосов
/ 23 января 2012

Я хочу совместить гибкость профилей и конфигураций пружин с параллельным выполнением тестов JUnit, которые используют аннотацию Parameterized или Theories .Есть ли способ включить все эти функции для запуска моих модульных тестов?

Проблема, с которой я продолжаю сталкиваться, заключается в том, что параметрам требуется доступ к внедренному компоненту, что невозможно, поскольку функция, аннотированная @Parameters или @DataPoints, должна быть статической.Мне очень не хотелось бы связывать это с каждым классом или даже статической функцией где-то, потому что я хотел бы быстро иметь возможность переключать профили без необходимости изменения кода Java.Возможно ли это?

Ответы [ 2 ]

2 голосов
/ 19 июня 2012

Я тоже искал решение этой проблемы. И есть один! Но, как видно из чьего-то блога, я не могу поверить в это. : -)

К сожалению, я больше не могу найти оригинальный блог ...

@RunWith(Parameterized.class)
@ContextConfiguration("/beans.xml")
public class MyTest {

  private final File file;

  public MyTest(final File file) {
    this.file = file;
  }

  @Autowired
  private PlatformTransactionManager transactionManager;

  private TestContextManager testContextManager;

  @Parameterized.Parameters
  public static Collection<File[]> getFilesToTest() throws Exception {
    return getValidFiles();
  }

  @Before
  public void setUpSpringContext() throws Exception {
    testContextManager = new TestContextManager(getClass());
    testContextManager.prepareTestInstance(this); // does the autowiring !
  }

  @Test
  public void testInTransactionContext() throws Exception {
    new TransactionTemplate(transactionManager).execute(new TransactionCallback() {
      public Object doInTransaction(final TransactionStatus status) {
        status.setRollbackOnly();
        try {
          ... run the test ...
        } catch (Exception e) {
          throw new RuntimeException(e);
        }
        return null;
      }
    });
  }
}
2 голосов
/ 24 января 2012

Найден билет по этому запросу. Кажется, в прикрепленном файле есть некоторые проблемы. Похоже, это был запрос на функцию уже довольно давно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...