一个python工具,用于在多台计算机上分布式运行gcj/fb hacker cup测试用例。

dTests的Python项目详细描述


一个python工具,用于在多台计算机上分布式运行gcj/fb hacker cup测试用例。

它是如何工作的

  • 首先,拆分器在输入文件上运行,将其拆分为seprate测试用例。
  • 带有实际代码的测试用例被发送到服务器。
  • 服务器将测试用例和实际代码分发给其注册的节点。
  • 每个节点计算其测试用例的结果并将结果发送回服务器
  • 服务器收集结果并按其测试用例号对其进行排序,然后将其发送回调用脚本。

安装

pip install dTests

运行dtest

  • 创建新项目:

    dtests_job new project_name language
    
  • 现在唯一支持的语言是“cpp”和“java”。

  • 打开新文件夹并对拆分器进行编码,以便从input.in文件中读取。

  • 在每个测试用例之间打印“–split–\n”。分割标记可以在“config.json”文件中配置。这将把输入文件分割成单个测试用例,这些测试用例将分布在运行的机器上。

  • 编写从stdin读取的程序文件的代码,就好像它正在读取单个测试用例一样。

  • 运行服务器

    dtests_server
    
  • 在其他机器上运行一个或多个节点(或在同一台机器上进行测试):

    dtests_node --host host --port port
    
  • 最后运行作业:

    dtests_job run
    
  • 有关进一步的自定义设置,请查看这些命令的帮助信息

示例项目

这是一个示例cpp项目,它接受输入并将其自身相乘https://github.com/MohamedBassem/dTests/tree/master/samples/power2

  • config.json文件包含项目配置。语言和拆分器语法。
  • splitter.cpp文件包含从“input.in”文件读取输入并将其拆分为单个测试用例的代码。
  • 从stdin读取单个测试用例并计算结果的program.cpp文件。
  • 要运行此项目,请运行服务器和至少一个节点。然后在项目目录中运行“dtests_job run”。

待办事项

  • 找到将测试用例号传递给程序的方法
  • 写作测试。
  • 使系统容错。
  • 找到分割输入文件的更好方法。
  • 支持更多编程语言。

有关详细信息,请访问https://github.com/MohamedBassem/dTests

贡献

你的贡献(想法、改进等)非常受欢迎。

许可证

根据MIT license授权。

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

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?