如何在不进行“Nosetests”的情况下在Pycharm中实际调试或运行.py文件?

时间:2016-05-12 21:06:08

标签: pycharm

我不知道我做了什么,或者我搞砸了什么设置,但我几个月来一直在使用Pycharm,突然间我进入了一些我无法摆脱的功能。

我仍然是python的新手,所以我设置了一个Python对象的简单测试。我想看看对象是否会在被调用的函数内更新...但这不是重点。不知何故,通过命名约定或其他东西,当我按下调试或运行时,我设法说服Pycharm切换到“nosetests”而不是运行代码。控制台没有任何输出......并且谷歌不可能出现这种情况......

无论如何,我在Pycharm Python项目中做了以下内容:

我创建了一个名为scratch的目录(其中有一个__init__.py文件),然后是一个名为scratch.py的python文件。

scratch.py内,我写了以下代码:

def add_item_function(x):
    x.list.append("hello,world")

class scratch(object):
    def __init__(self):
        self.list = []
    def add_item(self):
        add_item_function(self)

x = scratch()
add_item_function(x)
print(x.list)
y=1  #<-- here is where I put the breakpoint

无论我做什么,IDE只运行“nosetests”...我尝试将断点放入......并且代码实际上会在调试时点击断点...但是输出到控制台的唯一输出属于“鼻子测试”而不是我的代码。

此外,我什么都没改变。我一直这样做 - 制作类,然后在它们下面运行函数和代码......这种情况从未发生过。

我发现调试的配置......和Nosetests默认为项目中的“脚本”......但是我无法禁用它 - 它是一个单选按钮。我的代码的某些部分显然必须是一个鼻子测试...如何切换/关闭它,让程序以我告诉它的方式运行?

3 个答案:

答案 0 :(得分:0)

您可以尝试Edit Configurationshttps://www.jetbrains.com/help/pycharm/2016.1/creating-and-editing-run-debug-configurations.html

另外一项建议是使用if __name__ == '__main__'表示它是切入点,以获得更多详情:What does if __name__ == "__main__": do?

答案 1 :(得分:0)

我不知道是否适合您的情况。但是根据我的编码,我只是更改了项目和班级的名称。我删除了代码中的所有“测试”或“测试”。然后我解决了我的问题...我认为pycharm太聪明了,无法误解我们的代码...

答案 2 :(得分:0)

只需单击左上方菜单,然后在出现下拉菜单时选择再次运行。它为我工作。更多详情,请点击https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000413650-Disable-automatic-test-function