1

我正在尝试在 apama 中使用AUnit进行单元测试。所以我检查并阅读了 Aunit 包在后端使用 Apama Pysys 来测试 Apama 应用程序。

虽然我成功构建了 Aunit 包,但在测试随它提供的示例 Apama 监视器时出现错误。我不断收到警告:

c:\aunit-master\bin>aunit test Math

Copying C:\aunit-master\workspace\Math/src/Float.mon to C:\aunit-master\.__test\resources\Float.mon

2019-02-26 13:18:30,296 INFO  ==============================================================
2019-02-26 13:18:30,300 INFO  Id   : MathFloatTest
2019-02-26 13:18:30,302 INFO  Title: MathFloatTest
2019-02-26 13:18:30,304 INFO  ==============================================================
2019-02-26 13:18:33,068 WARN  caught <class '_csv.Error'> while running test: iterator should return strings, not bytes (did you open the file in text mode?)
Traceback (most recent call last):
  File "C:\SoftwareAG2\Apama\third_party\python\Lib\site-packages\pysys\baserunner.py", line 561, in __call__
    self.testObj.validate()
  File "C:\aunit-master\.__test\MathFloatTest\run.py", line 27, in validate
    for row in reader:
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
2019-02-26 13:18:33,299 WARN  iterator should return strings, not bytes (did you open the file in text mode?) (<class '_csv.Error'>) ... blocked
2019-02-26 13:18:36,196 WARN  caught <class '_csv.Error'> while running test: iterator should return strings, not bytes (did you open the file in text mode?)
Traceback (most recent call last):
  File "C:\SoftwareAG2\Apama\third_party\python\Lib\site-packages\pysys\baserunner.py", line 561, in __call__
    self.testObj.validate()
  File "C:\aunit-master\.__test\MathIntegerTest\run.py", line 27, in validate
    for row in reader:
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
2019-02-26 13:18:36,203 WARN  iterator should return strings, not bytes (did you open the file in text mode?) (<class '_csv.Error'>) ... blocked
2019-02-26 13:18:36,328 CRIT
2019-02-26 13:18:36,329 CRIT  Completed test run at:  Tuesday 2019-02-26 13:18:36 W. Europe Standard Time
2019-02-26 13:18:36,330 CRIT  Total test duration:    6.04 secs
2019-02-26 13:18:36,330 CRIT
2019-02-26 13:18:36,331 CRIT  Summary of non passes:
2019-02-26 13:18:36,331 CRIT    BLOCKED: MathFloatTest
2019-02-26 13:18:36,332 CRIT    BLOCKED: MathIntegerTest

此警告将测试用例的结果显示为 BLOCKED。

4

3 回答 3

3

该错误似乎来自https://github.com/antoinewaugh/aunit/blob/master/test-build/template/run_fast.py.template的第 27 行,看起来像 python 2 vs 3 兼容性。因此,让这个为您工作的最快方法可能是尝试使用 Python 2 运行它(如果 Antoine 尚未在 AUnit 中添加对 Python 3 的支持)?

或者对于更长期的方法,可以尝试 Caribou 对 AUnit 的修复,如果它有效,请提交拉取请求以使其合并?

于 2019-02-27T16:58:59.130 回答
1

Aunit 已被修补以支持两个版本的 python(2 和 3)。

感谢您提出问题。

也欢迎对该项目提出拉取请求。

于 2019-03-08T19:22:24.853 回答
1

没有任何代码可以查看和理解您在做什么,在我看来,正在读取的文件(csv)是一种意外的编码。

如果您在某个时候打开文件,您需要确保它以正确的编码读取或作为文本文件打开(我在下面使用了 utf8,但如果这不起作用,您可能需要弄清楚它是什么编码.

csvfile  = open('my.csv', "rt", encoding='utf8')

如果您没有打开文件,并且打开是在库中进行的,那么它仍然可能是正在读取的内容的错误编码 - 也许数据应该是 utf8 但它是某种 Windows 格式?

您需要在问题中添加代码,以便我们可以检查正在发生的事情,但是如果这些都不能解决问题。

于 2019-02-27T13:26:45.660 回答