2

我试图弄清楚 FitNesse 是如何工作的,但未能成功运行测试。有谁可以帮助我我所缺少的?

我已按照“Android 应用程序测试指南”一书中的所有步骤进行操作。我有一个 android 示例项目 TemperatureConverter 和一个测试项目 TemperatureConverterTest。

贝娄是我的 FitNesse 维基:

!contents -R2 -g -p -f -h
!define TEST_SYSTEM {slim}

!path C:\User\Workspaces\android\FitNesse\fitnesse.jar
!path C:\User\Workspaces\android\TemperatureConverter\bin\classes\
!path C:\User\Workspaces\android\TemperatureConverterTest\bin\classes\ 

!|import                                   |
|com.example.aatg.tc.test.fitnesse.fixture|

!define COLLAPSE_SETUP {true}
!define COLLAPSE_TEARDOWN {true}

!|TemperatureConverterCelsiusToFahrenheitFixture          |
|celsius|fahrenheit?                                      |
|0.0    |~= 32                                            |
|100.0  |212.0                                            |
|-1.0   |30.2                                             |
|-100.0 |-148.0                                           |
|32.0   |89.6                                             |
|-40.0  |-40.0                                            |
|-273.0 |~= -459.4                                        |
|-273   |~= -459.4                                        |
|-273   |~= -459                                          |
|-273   |~= -459.40000000000003                           |
|-273   |-459.40000000000003                              |
|-273   |-459.41 < _ < -459.40                            |
|-274.0 |Invalid temperature: -274.00C below absolute zero|

但是当我运行测试时,出现以下错误:

在此处输入图像描述

4

2 回答 2

2

首先要做的是检查您的类路径声明。您收到的错误表明 FitNesse 没有找到您的课程。

确保您在测试的父页面中有一个 !path 声明,并确保它的定义正确。

有关详细信息,请参阅http://fitnesse.org/FitNesse.FullReferenceGuide.UserGuide.WritingAcceptanceTests.ClassPath

更新: 现在我可以看到你确实有你的 !path 语句。我以前一定很想念他们。所以还有几件事要看:

  • 你的 Fixture 在正确的位置有一个 .class 文件吗?
  • 您的夹具类是否有需要参数的构造方法?
于 2013-05-28T13:54:21.107 回答
1

父套件页面或测试页面中的 !path 语句应指向包含 .class 文件的父包所在目录的路径,不一定指向包含类文件本身的子目录。目录结构的其余部分由测试页面上导入表中的类路径隐含。

所以,在你的例子中,你有

  • !路径C:\User\Workspaces\android\TemperatureConverter\bin\classes\
  • 进口com.example.aatg.tc.test.fitnesse.fixture

因此您需要将它们连接起来以找到 .class 文件位置 C:\User\Workspaces\android\TemperatureConverter\bin\classes\com\example\aatg\tc\test\fitnesse\fixture\TemperatureConverterCelsiusToFahrenheitFixture.class

对于 *nix 用户

  • !path 不应包含 C:\ 它应该来自带有正斜杠的文件系统的根目录
  • /Users/johndoe/myFitProject/target/test-classes

这应该是您的 java 项目的已编译类目录树所在的系统目录......换句话说,最终包含您的 .class 文件的“com”文件夹的位置。

于 2014-05-12T23:18:51.773 回答