<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements. See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to you under the Apache License, Version
  2.0 (the "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0 Unless required by
  applicable law or agreed to in writing, software distributed under the
  License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
  CONDITIONS OF ANY KIND, either express or implied. See the License for
  the specific language governing permissions and limitations under the
  License.
-->
<!--
JUST HERE TO BE ABLE TO RUN TCK ONE BY ONE WHEN DEVELOPING
think to add -Dvalidation.provider=org.apache.bval.jsr.ApacheValidationProvider to your runner config
-->
<suite name="tmp" verbose="1">
  <test name="tmp">
    <classes>
       <class name="org.hibernate.beanvalidation.tck.tests.integration.cdi.defaultinjection.DefaultInjectionTest"/>
<!--      <class name="org.hibernate.beanvalidation.tck.tests.bootstrap.BootstrapConfigurationTest"/>-->
<!--
      <class name="org.hibernate.beanvalidation.tck.tests.util.ConstraintViolationAssertTest"/>
-->
    </classes>
  </test>
</suite>
