当前位置: 首页 > 编程日记 > 正文

Your First Concordion.Net Project (Part 5)-Running Specs with Gallio

http://living-in-concordion.blogspot.com/2009/05/your-first-concordionnet-project-part-5.html

需要一些自动运行Spec的Runner,这里采用的为Gallio写的一个插件。

Gallio是一个开源的测试框架,能够运行各种.net的测试框架,具有较高的扩展能力和丰富的报表系统。

那么为了让Gallio能够运行我们的Spec,我们需要编写一个插件。在Concordion的发布文件中,你会看到一个目录叫做Gallio.ConcorionAdaper.这个微微Gallio编写的插件。

我喜欢在运行Spec的时候以Gallio.Echo的方式开始。这是一个可执行文件,而且很容易调试问题。Gallio还有GUI的runner,比如Lcarus.

我们在Specification项目的根目录下创建Specification文件,如下图所示:
Calculator.Sample.11_thumb[1]

这个文件叫做run-spec-with-echo.cmd。我们需要告诉Gallio到哪里找Gallio.ConcordionAdapter插件,以及到哪里找我们的Specification Assembly. 文件夹的内容如下:

Calculator.Sample.12_thumb[1]

在命令行中添加如下命令来告诉Gallio到哪里找目录:/pd:c:\Concordion\Gallio.ConcordionAdapter , 这会使Gallio在这个目录中搜索.plugin文件。然后我们需要告诉Concordion 哪里找到我们的Specification  assembly。bin\Debug\Calculator.Spec.dll。 既然批处理文件是在我们的项目目录中,但是我们的Spec程序集是在项目的输出目录中,我们需要添加到Spec的相对路径。除非明确的执行,Gallio.Echo的路径也是在当前目录下:我们的命令行应该如下所示:

set GALLIO_PATH=C:\Dev\concordion-net\tools\Gallio-trunk\bin
 
%GALLIO_PATH%\Gallio.Echo.exe /pd:c:\Concordion\Gallio.ConcordionAdapter bin\debug\Calculator.Spec.dll
 
pause

运行这个文件,你可能会遇到如下的输出结果:

Calculator.Sample.13_thumb[3]

Fixing the Fixture


修改我们的Calculator Class如下所示:
   1:  public class Calculator
   2:  {
   3:      public long Add(long first, long second)
   4:      {
   5:          return first + second;
   6:      }
   7:   
   8:      public long Subtract(long first, long second)
   9:      {
  10:          return first - second;
  11:      }
  12:   
  13:      public long Multiply(long first, long second)
  14:      {
  15:          return first * second;
  16:      }
  17:   
  18:      public long Divide(long first, long second)
  19:      {
  20:          return first / second;
  21:      }
  22:  }

修改我们的测试代码如下所示:

  [ConcordionTest]public class ArithmeticTest{public long firstOperand;public long secondOperand;public long Addition(long first, long second){return new Calculator().Add(first, second);}public long Subtraction(long first, long second){return new Calculator().Subtract(first, second);}public long Multiplication(long first, long second){return new Calculator().Multiply(first, second);}public long Division(long first, long second){return new Calculator().Divide(first, second);}}

再次运行后,运行结果如下所示:

image_thumb[2]

最终的HTML的输出结果如下所示:

image_thumb[4]

If you want to see the source code for this series of posts you can download it here.

This sample was pretty basic but it should be enough to get you up and running!

Thanks for trying out this tool, I hope you enjoy it. Stay tuned, there will be more to come on advanced features of Concordion!

转载于:https://www.cnblogs.com/sunshinefly128/archive/2012/01/16/2323928.html

相关文章:

Vue学习的路径

接下来我将正式学习Vue,根据Vue作者所给的学习路径进行学习。每天做好学习笔记。​ vue学习路径和建议----尤雨溪 ​ vue官网

ssh mysql环境搭建 myeclipse_MyEclipse整合ssh三大框架环境搭载用户注册源码下载

前言SSH不是一个框架,而是多个框架(strutsspringhibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域…

IIS7.5 HTTP 错误 500 调用loadlibraryex失败的解决方法

在IIS7.5打开网页的时候,提示: HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll,经过排除发现原来是两个斜杠导致在IIS7.5打开网页的时…

Android学习笔记之progressBar(进度条)

一、说明 <1>在某项延续性工作的进展过程中为了不让用户觉得程序死掉了&#xff0c;需要有个活动的进度条&#xff0c;表示此过程正在进行中。 <2>在某些操作的进度中的可视指示器&#xff0c;为用户呈现操作的进度&#xff0c;还它有一个次要的进度条&#xff0c;…

在hadoop上运行python_hadoop上运行python程序

数据来源&#xff1a;http://www.nber.org/patents/acite75_99.zip首先上传测试数据到hdfs&#xff1a;[rootlocalhost:/usr/local/hadoop/hadoop-0.19.2]#bin/hadoopfs -ls /user/root/test-inFound 5 items-rw-r--r-- 1root supergroup101 2010-10-24 14:39 /user/root/test-…

leetcode 237: Delete Node in a Linked List

题目&#xff1a; Write a function to delete a node (except the tail) in a singly linked list, given only access to that node. Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become…

一次奇怪的AP注册异常问题处理

很久没遇到值得分享的经验&#xff0c;今天遇到一个问题&#xff0c;处理过程很有意思&#xff0c;和大家一起分享一下。有一个客户部署华三的一套无线&#xff0c;采用控制器瘦AP的方式。部署过程都是轻车熟路&#xff0c;配置全部完成&#xff0c;静等AP上线&#xff0c;这时…

今天是第一次开博客,for--futurechild!!!

今天刚刚开了一个博客&#xff0c;或许觉得每一个比较牛叉的人都会经历一个不平凡的过程。通往高手之路是一个及其不平凡的路途。学校教育不能培养出真正高手。学习的最高境界是---悟。自己一步一个脚印最终能到达高手的殿堂。当然&#xff0c;我也希望能记录下自己的这个过程。…

memcache php mysql_PHP中的数据库二、memcache

在一个高并发的web应用中&#xff0c;数据库存取瓶颈一直是个大问题&#xff0c;一旦达到某个极限&#xff0c;数据库很容易崩溃&#xff0c;但是如果我们把常用的数据放到内存中&#xff0c;在需要的时候从内存中取&#xff0c;不光读取速度快&#xff0c;而且节约数据库IO。m…

JavaScript sync and async(同步和异步)

推荐四篇文章&#xff1a; JavaScript 是单线程的深入分析JavaScript 运行机制详解&#xff1a;再谈 Event LoopJavaScript 异步编程的4种方法JavaScript 既是单线程又是异步的&#xff0c;请问这二者是否冲突&#xff0c;以及有什么区别&#xff1f;一个重要前提&#xff1a;J…

掌握 MySQL 这 19 个骚操作,效率至少提高3倍

本文我们来谈谈项目中常用的MySQL优化方法&#xff0c;共19条&#xff0c;利用好这19条方法&#xff0c;会让你的效率提升至少3倍。1、EXPLAIN做MySQL优化&#xff0c;我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例&#xff0c;标注&#xff08;1、2、3、4、5&#xf…

对于PS和flash协作做过光字的一点心得

上次一个朋友要求要帮忙帮他网站BANNER上面做个透明的过光字FLASH&#xff0c;要求必须是PS处理的字的效果再用过光字做成FLASH。。。 导入PS生成的文字效果PNG透明图片&#xff0c;直接新建图层&#xff0c;放下面&#xff0c;画个过光的效果&#xff0c;结果没有过光效果&…

mysql 5.6 binlog_format_ROW 格式binlog 在MySQL5.6上的数据恢复实验

5.6和5.7版本的MySQL&#xff0c;有个参数binlog_row_image&#xff0c;默认值为FULL&#xff0c;表示记录的是全部的binlog操作日志(仅在binlog_formatROW时候生效)。此外binlog_row_image还可以是minimal&#xff0c;表示binlog记录的就只是影响后的行。如此一来使用ROW格式就…

Appium学习笔记2_Android获取元素篇

在利用Appium做自动化测试时&#xff0c;最重要的一步就是获取对应的元素值&#xff0c;根据元素来对对象进行对应的操作&#xff0c;如果获得对象元素呢&#xff1f; Appium Server Console其实提供了一个界面对话框"Inspector",但是一般情况下&#xff0c;它无法获…

C#制作安装包

软件项目编码完工后,接下来就是制作安装包了.有一些人对制作安装包不屑一顾,但我认为这是软件工程中必不可少的环节,就如何包装商品一样.我曾经经过一个星期的研究,学会了如何制作安装包. 我做的一个安装包是可以操作配置文件的,具体步骤如下: 1)在我已经开发好的解决方案项目…

ThunderGBM:快成一道闪电的梯度提升决策树

想在 GPU 上使用使用闪电般快速的提升方法&#xff1f;了解这个库就好了。在很多任务上&#xff0c;它都比 LightGBM 和 XGBoost 快。尽管近年来神经网络复兴并大为流行&#xff0c;但提升算法在训练样本量有限、所需训练时间较短、缺乏调参知识等场景依然有其不可或缺的优势。…

cyclicbarrier java_Java并发编程之CyclicBarrier和线程池的使用

原标题&#xff1a;Java并发编程之CyclicBarrier和线程池的使用下面我们来讲述一下线程池和CyclicBarrier的使用和对比。一、场景描述有四个游戏玩爱好者玩游戏&#xff0c;游戏中有三个关卡&#xff0c;每一个关卡必须让所有玩家到达后才能允许通过。其实这个场景里的玩家中如…

在CentOS 7中安装与配置Tomcat-8方法

安装前提 在CentOS 7中安装与配置JDK8 安装tomcat apache-tomcat-8.0.14.tar.gz文件上传到/usr/local中执行以下操作&#xff1a; [rootlocalhost ~]# cd /usr/local [rootlocalhost ~]# tar -zxv -f apache-tomcat-8.0.14.tar.gz // 解压压缩包 [rootlocalhost ~]# rm -rf …

java I/O总结(收藏)

Java I/O总结——InputStream By: 海市蜃楼 | In: Android开发 22十一2009在前面介绍了Decorator&#xff08;装饰&#xff09;模式&#xff0c;让我自己想起了刚开始工作时那段“痛并快乐”的学习时光。在学习Android网络方面&#xff0c;也发现网络方面的很多内容都与Java I/…

我了解到的新知识之——电热水器用电安全

今天写一篇文章和大家分享一个与科技产品无关的话题&#xff0c;就是关于我们每天都会使用的电热水器。到底出了什么问题呢&#xff1f;我在今天准备打开热水器时&#xff0c;发现按下开关之后没有反应&#xff0c;于是就去查看漏电保护器&#xff0c;发现漏电保护器和墙面上的…

android native java_在Android Native层中创建Java虚拟机实例

前言Android应用中JNI代码&#xff0c;是作为本地方法运行的。而大部分情况下&#xff0c;这些JNI方法均需要传递Dalvik虚拟机实例作为第一个参数。例如&#xff0c;你需要用虚拟机实例来创建jstring和其他的Java对象、查找类或成员变量等。大部分情况下&#xff0c;在你用JNI接…

Qt 学习之路:模型-视图高级技术

PathView PathView是 QtQuick 中最强大的视图&#xff0c;同时也是最复杂的。PathView允许创建一种更灵活的视图。在这种视图中&#xff0c;数据项并不是方方正正&#xff0c;而是可以沿着任意路径布局。沿着同一布局路径&#xff0c;数据项的属性可以被更详细的设置&#xff0…

3.7Python数据处理篇之Numpy系列(七)---Numpy的统计函数

目录 目录前言&#xff08;一&#xff09;函数一览表&#xff08;二&#xff09;统计函数1&#xff08;三&#xff09;统计函数2目录 前言 具体我们来学Numpy的统计函数 &#xff08;一&#xff09;函数一览表 调用方式&#xff1a;np.* .sum(a)对数组a求和.mean(a)求数学期望.…

android图像处理系列之三--图片色调饱和度、色相、亮度处理

原图&#xff1a; 处理后&#xff1a; 下面贴代码&#xff1a; 一、图片处理层&#xff1a; package com.jacp.tone.view; import java.util.ArrayList; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.gra…

JAVA动态读取xml_Java动态生成和解析xml文件步骤详解

packageday12;importjava.io.FileInputStream;importjava.util.ArrayList;importjava.util.List;importorg.dom4j.Document;importorg.dom4j.Element;importorg.dom4j.io.SAXReader;/*** 使用DOM4J解析XML文档*authortarena**/public classParseXMLDemo {public static voidmai…

C++基础知识(二)

八、 继承&#xff1a;让某个类的对象获得另一个类的对象的特性。通过继承可实现代码重用&#xff0c;即从已存在的类派生出的一个新类将自动具有原来那个类的特性。 类的继承还具有&#xff1a;(1)单向性&#xff1b;A类为B类的基类&#xff08;父类&#xff09;&#xff0c;则…

Spring MVC 学习笔记 对locale和theme的支持

Spring MVC 学习笔记 对locale和theme的支持 Locale Spring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 Accept-Language 来确定访客的local。对于前端jsp页面上&#xff0c;spring提供了标签<spring:message>来提供从resource文件中获取的文字的动…

iOS逆向(4)-代码注入,非越狱窃取微信密码

利用LLDB对微信进行分析&#xff0c;然后利用分析的结果&#xff0c;再逐步讲解如何Hook微信的登录过程&#xff0c;截获微信密码。 在上一篇文章(APP重签名)中&#xff0c;已经介绍了如何对APP重签名&#xff0c;并且利用XCode将微信跑起来&#xff0c;既然到了这一步&#xf…

java http请求 工具类_Java 实现 Http 请求工具类

1 packagecom.demo.util;23 importjava.io.BufferedReader;4 importjava.io.IOException;5 importjava.io.InputStreamReader;6 importjava.io.OutputStreamWriter;7 importjava.net.URL;8 importjava.net.URLConnection;910 public classHttpUtil {11 /**12 * 向指定URL发送GE…

Entity Framework学习三:查询、插入、更新和删除操作

1.LINQ过滤数据 var query from person in context.Peoplewhere person.FirstName.StartsWith("a")select person; var methodQuery context.People.Where(p > p.FirstName.StartsWith("a")); 两种不同的写法&#xff0c;效果一样。 多条件组合查找…