Codewars Python TDD离线

时间:2016-12-06 13:15:44

标签: python tdd

我想使用熟悉的开发环境离线执行Codewars Python katas。但是,提供的测试使用与Python的Unittest完全不同的语法。我无法在任何地方找到测试框架的源代码。

我已经尝试过codewars-client npm包(https://github.com/shime/codewars),但它让我深感困惑。我也看了一下codewars-cli runner,但看起来更难以理解,并涉及Docker。

令人沮丧的是因为我真的只想练习一些基本的编码,但我最终不得不尝试理解json和依赖项以及包管理,以便启动和运行基本的TDD环境。

有人可以建议如何简单地使用本地python katas中提供的测试吗?示例如下:

test.describe("Basic tests")
test.it("A resistor under 1000 ohms and with only three bands")   
test.assert_equals(decode_resistor_colors("yellow violet black"), "47 ohms, 20%")
test.it("A resistor between 1000 and 999999 ohms, with a gold fourth band")   
test.assert_equals(decode_resistor_colors("yellow violet red gold"), "4.7k ohms, 5%")
test.it("A resistor of 1000000 ohms or above, with a silver fourth band")   
test.assert_equals(decode_resistor_colors("brown black green silver"), "1M ohms, 10%")

3 个答案:

答案 0 :(得分:0)

我建议使用python-code-kata之类的内容 您可以使用当前示例或搜索其他一些代码kata。 校长和#34;代码战#34; - 它使用测试来检查你的答案。主要好处是您可以在您的计算机上进行设置并离线使用它。 (据我所知,这对你很重要)

答案 1 :(得分:0)

我只是将测试用例转换为代码中的print语句,然后注释掉其余部分。然后直观地比较答案。

见下文:

# test.describe("Basic tests")
# test.it("A resistor under 1000 ohms and with only three bands")   
print(decode_resistor_colors("yellow violet black")) # "47 ohms, 20%"

# test.it("A resistor between 1000 and 999999 ohms, with a gold fourth band")   
print(decode_resistor_colors("yellow violet red gold")) #  "4.7k ohms, 5%"

# test.it("A resistor of 1000000 ohms or above, with a silver fourth band")   
print(decode_resistor_colors("brown black green silver")) # "1M ohms, 10%"

答案 2 :(得分:0)

我使用自己的类来模仿Codewars测试行为。

您可以在这里看到我的示例: Codewars Tests