我需要在构建时运行PyLint来验证Python文件代码。pyproj下有python文件(我在visualstudio2015中使用python工具)。我怎么能做到呢?在
更新:
到目前为止,我有这样的代码:
<Target Name="PythonRunPyLint">
<PropertyGroup>
<PyLintWarningRegex><![CDATA[^(?<filename>.+?)\((?<line>\d+),(?<column>\d+)\): warning (?<msg_id>.+?): (?<message>.+?)$]]></PyLintWarningRegex>
</PropertyGroup>
<RunPythonCommand Target="pylint.lint"
TargetType="module"
Arguments=""--msg-template={abspath}({line},{column}): warning {msg_id}: {msg} [{C}:{symbol}]" -r n @(Compile, ' ')"
ExecuteIn="console"
WorkingDirectory="$(MSBuildProjectDirectory)"
WarningRegex="$(PyLintWarningRegex)"
RequiredPackages="pylint>=1.0.0">
<Output TaskParameter="ConsoleOutput" PropertyName="OutputText" />
<Output TaskParameter="ConsoleError" PropertyName="ErrorText" />
</RunPythonCommand>
</Target>
但当我运行msbuild时,得到的输出是0个警告,为什么regex不解析警告(regex来自Microsoft.PythonTools.targets当你在visualstudio中运行PyLint时,它还能工作吗?在
^{pr2}$
最后我得到了以下代码:
现在,
msbuild TestPylint.pyproj /t:Build
统计错误/警告,错误/警告也显示在visualstudio错误列表窗口中。在使用任务WriteLinesToFile是因为我没有找到msbuild识别错误/警告的任何其他方法
<Exec Command="echo $(OutputText)/>
(如果OutputText是属性)根本无法工作!在它不是开箱即用的,但是如果你有兴趣,你可以把它添加到你的项目中。找到}。将其复制到您的项目中,将其重命名为类似于“pythonrunpyline”的名称,并在其中将
Microsoft.PythonTools.targets
,然后在里面找到{CreatePythonCommandItem
替换为RunPythonCommand
。您可能还必须删除该元素上的某些属性(基本上MSBuild会抱怨的任何属性都不存在),并删除子元素<Output>
。在那就用那个目标开始构建。在
与@Nmktronas提出的解决方案略有不同。在
相关问题 更多 >
编程相关推荐