python - 使用 SLIM 使用 Python 编写 Fitnesse 测试

标签 python testing fitnesse acceptance-testing fitnesse-slim

我下载并运行了 fitnesse-standalone 来测试 SLIM 协议(protocol)是如何工作的。

目录结构如下

/Users
   |
    -redmont
         |
          -fitnesse-standalone.jar
         |
          -Calc.py
         |
          -FitNesseRoot/

健身百科

!contents -R2 -g -p -f -h

!This is a test page

!define TEST_SYSTEM {slim} 
!define SLIM_VERSION {0.1}
!path /Users/redmont/Calc.py
!path /Users/redmont/fitnesse-standalone.jar
!define COMMAND_PATTERN {python -m waferslim.server --syspath 8080}

|import|
|waferslim.examples.decision_table|
|Calc.MyCalc|


|my calc|
|A      |B      |multiply?  |
|1      |2      |2          |
|1      |0      |0          |
|3      |5      |15         |

计算.py

from waferslim.converters import convert_arg, convert_result, YesNoConverter

class MyCalc(object):
    """
        Base test class
    """
    def __init__(self):
        """
            Initialise instance variables a and b to multiply
        """
        self._A = 0
        self._B = 0
        self._multiply = 0

    @convert_arg(to_type=int)
    def setA(self, A):
        """
            Decorated method to the variable 'a' as an int.
            The decorator uses the implicitly registered int converter to 
            translate from a standard slim string value to an int. 
        """
        self._A = A

    @convert_arg(to_type=int)
    def setB(self, B):
        self._B = B

    @convert_result(to_type=str)
    def multiply(self):
        return self._A * self._B

我开始使用 fitnesse-standalone java -jar fitnesse-standalone.jar -p 8080 -v

终端中的日志是

Socket class: class java.net.Socket
   Remote address = /0:0:0:0:0:0:0:1:57853
   Local socket address = /0:0:0:0:0:0:0:1:8080
   Closed = false
   Connected = true
   Bound = true
   isInputShutdown = false
   isOutputShutdown = false
Creating plain socket on port: 0
Trying to connect to host: localhost on port: 57859 SSL=false timeout setting: 10
Creating plain client: localhost:57859
Socket class: class java.net.Socket
Connected to host: localhost on port: 57859 SSL=false timeout setting: 10
   Remote address = /127.0.0.1:57860
   Local socket address = /127.0.0.1:57859
   Closed = false
   Connected = true
   Bound = true
   isInputShutdown = false
   isOutputShutdown = false
Read Slim Header: >Slim -- V0.4<
Got Slim Header: Slim -- V0.4, and Version 0.4

当我在 FitNesse 中调试运行这个 fixture 时,我收到以下错误:

Could not invoke constructor for MyCalc[0]
1 The instance decisionTable_1.setA. does not exist 
2 The instance decisionTable_1.setB. does not exist 
2 The instance decisionTable_1.multiply. does not exist

我无法理解为什么 FitNesse 无法找到我的灯具代码?

是因为一些许可吗?

我还使用奶酪店的鸡蛋安装了 waferslim。

最佳答案

重新安装 waferslim 以某种方式解决了我的问题。

关于python - 使用 SLIM 使用 Python 编写 Fitnesse 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31991135/

相关文章:

python - 如果 pandas 数据框中另一列的值相同,我如何减去 2 列

python - python3 中的 librosa 模块导入抛出警告

c++ - 在 C++ 环境中优化回归测试

java - 当文件夹深度大于 4 时,Fitnesse 框架非常慢 - 为什么?

python - 如何用 Python joblib 填充全局变量?

python - 输出 : functions vs. 分配给变量的函数

unit-testing - 单元测试 Controller 方法?

sql - Django 单元测试中的原始 sql 查询

c++ - 当测试技术性很强时,为什么要使用 FitNesse?

FitNesse:使用 RestFixture 创建测试的工作流程