Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从自动化测试套件中排除一些JUnit测试_Java_Unit Testing_Junit - Fatal编程技术网

Java 从自动化测试套件中排除一些JUnit测试

Java 从自动化测试套件中排除一些JUnit测试,java,unit-testing,junit,Java,Unit Testing,Junit,在编写与外部资源交互的代码(例如使用web服务或其他网络操作)时,我经常构造类,以便也可以使用文件或其他输入方法对其进行“存根”。因此,我最终使用stubbed实现来测试系统的其他部分,然后是一个或两个专门测试调用web服务的测试 问题是我不想从Jenkins或在我为我的项目运行所有测试(例如“gradle测试”)时调用这些外部服务。有些服务有副作用,或者可能不是所有开发人员都可以访问 现在我只是取消注释,然后对这些特定测试方法重新注释@Test注释,以启用和禁用它们。启用它,手动运行以检查它,

在编写与外部资源交互的代码(例如使用web服务或其他网络操作)时,我经常构造类,以便也可以使用文件或其他输入方法对其进行“存根”。因此,我最终使用stubbed实现来测试系统的其他部分,然后是一个或两个专门测试调用web服务的测试

问题是我不想从Jenkins或在我为我的项目运行所有测试(例如“gradle测试”)时调用这些外部服务。有些服务有副作用,或者可能不是所有开发人员都可以访问

现在我只是取消注释,然后对这些特定测试方法重新注释@Test注释,以启用和禁用它们。启用它,手动运行以检查它,然后记得再次注释它

// Uncomment to test external service manually
//@Test
public void testSomethingExternal() {
有没有更好的方法


EDIT:对于手动单元测试,我使用Eclipse,只需右键单击测试方法并运行As->JUnit测试。但如果没有(未注释的)注释,这是行不通的。

据我所知,您使用gradle和JUnit的API表示注释
@Ignore
会禁用测试。我将添加gradle任务,该任务将为这些测试添加
@Ignore

据我所知,您使用gradle和JUnit的API表示注释
@Ignore
禁用测试。我将添加gradle任务,该任务将为这些测试添加
@Ignore

如果您只是想对尚未编写的功能禁用测试,或者临时手动禁用某些测试,您可以使用;将跳过这些测试,但仍会在报告中注明


如果您想要Spring概要文件之类的东西,您可以定义在运行测试时运行测试的规则集,您应该将测试拆分为单独的测试用例或使用。

如果您只是想对尚未编写的功能禁用测试,或者暂时手动禁用某些测试,您可以使用;将跳过这些测试,但仍会在报告中注明


如果您想要类似Spring概要文件的东西,您可以在其中定义运行测试的规则集,那么您应该将测试拆分为单独的测试用例,或者使用junit类别。

我建议使用junit类别。有关详细信息,请参阅此博客:

基本上,您可以将某些测试注释为处于特殊类别中,然后可以设置两个测试套件:一个运行该类别的测试,另一个忽略该类别中的测试(但运行其他所有测试)

}

您甚至可以为单个测试添加注释“


每当我看到手动打开或关闭某些内容时,我都会畏缩。

我建议使用junit类别。有关详细信息,请参阅此博客:

基本上,您可以将某些测试注释为处于特殊类别中,然后可以设置两个测试套件:一个运行该类别的测试,另一个忽略该类别中的测试(但运行其他所有测试)

}

您甚至可以为单个测试添加注释“


每当我看到手动打开或关闭某些东西时,我都会畏缩

您可以使用
@Ignore
注释来防止它们在测试期间自动运行。如果需要,您可以手动触发此类被忽略的测试

@测试
public void wantedTest(){
返回checkMyFunction(10);
}
@忽略
@试验
公共无效未经验证的测试(){
返回checkMyFunction(11);
}

在上面的示例中,
unwantedTest
将被排除。

您可以使用
@Ignore
注释来防止它们在测试期间自动运行。如果需要,您可以手动触发此类被忽略的测试

@测试
public void wantedTest(){
返回checkMyFunction(10);
}
@忽略
@试验
公共无效未经验证的测试(){
返回checkMyFunction(11);
}

在上面的示例中,
unwantedTest
将被排除。

不清楚您是想要一个可以来回切换的单元测试的自动“配置文件”,还是一种在开发过程中手动切换它们的更简洁的方式。@chrylis我最初尝试的是运行一个单独的测试。然而,为这些类型的测试创建单独的概要文件可能是一种更好的方法。虽然我仍然希望能够单独运行一些测试(例如,在有副作用的情况下——我试图避免,但有时不可避免)。但不清楚您是否需要自动的“配置文件”您可以在单元测试之间来回切换,或者只是在开发过程中手动切换单元测试的一种更干净的方式。@chrylis我最初试图做的是运行一个单独的测试。然而,为这些类型的测试创建单独的概要文件可能是一种更好的方法。尽管我仍然希望能够单独运行一些测试(例如,在有副作用的情况下——我试图避免,但有时不可避免),但这很有趣。请参阅上面的编辑-也许我可以制作一个过滤器,在Eclipse中运行单个测试时进行检测,并(取消)适当地筛选该测试方法。(没想到这像是春季简介,但是的,很相似。)有趣。请参阅上面的编辑-也许我可以制作一个过滤器,在Eclipse中运行单个测试时进行检测,并(取消)适当地筛选该测试方法。(没想到这像是春季简介,但是的,它非常相似。)谢谢-这听起来是个好主意。不确定这与Gradle或Eclipse如何交互,我们需要进一步检查。谢谢-这听起来是个好主意。不确定这是如何与Gradle或Eclipse交互的,需要进一步检查。
@Category(IntegrationTests.class)
public class AccountIntegrationTest {

  @Test
  public void thisTestWillTakeSomeTime() {
    ...
   }

  @Test
  public void thisTestWillTakeEvenLonger() {
     ....
  }
public class AccountTest {

   @Test
   @Category(IntegrationTests.class)
   public void thisTestWillTakeSomeTime() {
     ...
    }