<!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.jsr303.ApacheValidationProvider to your runner config
-->
<suite name="tmp" verbose="1">
  <test name="tmp">
    <classes>
      <class name="org.hibernate.beanvalidation.tck.tests.integration.cdi.executable.ExecutableValidationTest">
        <methods>

        </methods>
      </class>
    </classes>
  </test>
</suite>
