用于运行和解释junit5单元测试的check50扩展

check50-junit的Python项目详细描述


支票50

这是CS50 automarker check50的扩展 用于编译和运行Junit5单元测试 并将产生的失败直接作为check50失败进行检查。在

此模块附带Junit5's stand-alone console launcher。在

你的问题集只需要包含junit测试类的编译字节码, 它们是根据练习的模型解决方案编译的。 这就解决了单元测试不能为学生代码编译的问题 由于意外的方法签名类标识符。 这些错误将反映在JUnit的报告XML文件中。在

示例用法

TLDR:importcheck50_junit;将编译后的junit测试类添加到pset,并在检查中使用check50_junit5.run_and_interpret_test。 下面是一个完整的例子。在

下面的所有示例假设您正在导入check50和{}。在

  1. 编写模型解决方案和单元测试类,并手动编译它们。在

    publicclassDrink{privatefinalintvolume;publicDrink(intv){volume=v;}intgetVolume(){returnvolume;}
    ^{pr2}$ 在
  2. 将字节码DrinkTest.class移到pset目录的某个地方,比如在tests/下。在

  3. 添加一个检查,如下所示(我通常会让这个依赖于类存在、编译和可以实例化的检查)。在

    @check50.check()defdrink_getVolume():"""Test Drink.getVolume()"""check50_junit.run_and_interpret_test(classpaths=['tests/'],args=['--select-method','DrinkTest#getVolume'])

    这将在学生提交的文件上运行预编译的单元测试,解析junit的XML报告并根据结果引发任何check50.Failure。在这种情况下,如果单元测试中的assertEquals被抛出,它将引发check50.Mismatch异常。在

  4. 确保在pset的.cs50.yml中添加check50-java作为依赖项:

    check50:
      dependencies:
        - check50-java
      files:
        - !exclude "*"
        - !include "*.java"
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ws-consumer服务地址中的java动态属性   java如何比较整数列表,然后按升序排序?   javascript我正在使用java脚本调用一个函数,但它没有调用代码下面的方法,也没有调用secretitnames()函数   在文本窗格中多次使用Java insertIcon图标   JavaMSAL安卓。AuthenticationActivity完成,但用于身份验证请求的线程池线程仍处于等待状态   if语句中的java多范围比较   java toString()表示输出   java如何在jcstrest测试中生成指令重新排序   java我怎样才能运行它?   web应用程序中使用Hibernate和Spring的java问题   如何将字符串数据写入Java文本文件   如何在java命令提示符下运行已签名的jar文件?   java从我的菜单调用RCP应用程序   java如何等待Canvas/GraphicsContext完成任务,然后再继续执行代码块?