当前位置: 首页 > 知识库问答 >
问题:

Spock按包订购测试

东郭昌胤
2023-03-14

他,大家!我的测试是由jenkins从通用包运行的。我可以在spock中设置测试包,它将首先运行,如果在这个包中没有通过任何测试,其他测试应该跳过。我看到这样的例子:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;    
@RunWith(Suite.class)    
@Suite.SuiteClasses({TestJunit1.class, TestJunit2.class})    
  public class JunitTestSuite {   
  }  
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
  public static void main(String[] args) {
    Result result = JUnitCore.runClasses(JunitTestSuite.class);    
      for (Failure failure : result.getFailures()) {
        System.out.println(failure.toString());
      }         
      System.out.println(result.wasSuccessful());
   }
} 
import org.junit.runner.RunWith;
import org.junit.runners.Suite;    
@RunWith(Suite.class)    
@Suite.SuiteClasses({com.example.test.*.class})    
   public class JunitTestSuiteFirst {   
   }  
import org.junit.runner.RunWith;
import org.junit.runners.Suite;        
@RunWith(Suite.class)        
@Suite.SuiteClasses({com.example.otherTest.*.class, com.example.otherTests2.*.class})        
   public class JunitTestSuiteFirst {   
    }  
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(JunitTestSuite.class);    
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
      if(result.wasSuccessful()){
         JUnitCore.runClasses(JunitTestSuite.class);
      }else {
         System.out.println("Build failed");
      }
   }
} 

共有1个答案

百里嘉泽
2023-03-14

在单元测试框架中所能完成的任何工作都不是很好的。这是因为单元测试应该是相互独立的,这种心态不会对配置测试顺序提供强有力的支持。因此,最好的方法是在构建工具(Ant、Maven、Gradle等)中寻找解决方案。

下面的gradle片段设置了两个不同的单元测试集/目录。使用命令gradle test integrationTest build,只有当src/test下的所有测试都通过时,src/integration下的测试才会运行。

sourceSets {
    integrationTest {
        java {
            srcDirs = ['src/integration']
        }
        groovy {
            srcDirs = ['src/integration']
        }
        resources.srcDir file('src/integration/resources')
    }

    test {
        java {
            srcDirs = ['src/test']
        }
        groovy {
            srcDirs = ['src/test']
        }
    }
}
 类似资料:
  • 问题内容: 我正在尝试使以下内容起作用: 导致异常的部分是: 编辑: 经过进一步观察, (在首次致电后,没有)为我完成了这项工作。 问题答案: 看来您无法对查询中的children集合进行排序。在查询之后进行排序,或者在第二个查询中加载子级。 类似的问题和答案在这里

  • 问题内容: 我有一个与数据库对话的servlet,然后返回一个有序(按时间排序)对象的列表。在servlet部分,我有 从日志中,我可以看到数据库以正确的顺序返回了User对象。 在前端,我有 但是顺序改变了。 我只在返回的列表很大(超过130个用户)时才注意到这一点。 我尝试使用Firebug进行调试,Firebug中的“响应选项卡”显示列表的顺序与servlet中的日志不同。 我做错了什么吗?

  • 我是Flink的新手,我试图理解Flink是如何在其的并行抽象中命令调用。考虑这个产生部分和的流的例子: 我希望它的输出是流:。事实上,就在这里。 是否可以安全地假设这种情况始终存在,尤其是在从具有大量并行性的源读取数据时?

  • 我最初的目标是能够在侧边栏中按标题排序显示Woocommerce产品。目前,此小部件中唯一的排序选项是日期、价格、随机和销售。 我能够在wc类小部件产品的两个部分中添加标题排序选项。php: 在这里: 此自定义工作正常,但: 我的问题:我应该在哪里保存这个定制的“”文件,以防止它在下一次更新时被覆盖<或者。。。有没有更优雅的方法来实现这一点?非常感谢。

  • 问题内容: 在Java中,是否有一个对象的作用类似于用于存储和访问键/值对的Map,但是可以返回键的有序列表和值的有序列表,从而使键和值列表的顺序相同? 因此,按照代码进行解释,我正在寻找某种行为,就像我的虚拟OrderedMap: 问题答案: 该SortedMap的接口(与实施TreeMap的)应该是你的朋友。 该接口具有以下方法: keySet() 它以升序返回一组键 values() 它以对