<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>yarch (noseについての記事)</title><link>https://yarch.jp/</link><description></description><atom:link href="https://yarch.jp/categories/nose.xml" rel="self" type="application/rss+xml"></atom:link><language>ja</language><lastBuildDate>Wed, 02 Nov 2022 02:23:41 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>noseのsys.path改竄を防ぐ</title><link>https://yarch.jp/posts/qiita/nosenosys.pathKai-Zan-woBou-gu.html</link><dc:creator>MURAOKA Yusuke</dc:creator><description>&lt;div&gt;&lt;p&gt;皆さんご愛用のテストランナーであるnose、これには便利機能があります。
以下のようなディレクトリ構造があったとします。&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;foo
+ src
  + foo
    + ...
+ lib
&lt;/pre&gt;


&lt;p&gt;このときにnoseは &lt;strong&gt;デフォルトでfoo/srcとfoo/libをsys.pathに追加(insert)します。&lt;/strong&gt;
つまりlibディレクトリのなかに同名のモジュールがあったらそちらが読み込まれます。&lt;/p&gt;
&lt;p&gt;ひどいですね。&lt;/p&gt;
&lt;p&gt;これを防ぐにはコマンドライン引数か環境変数で指定する必要があります。&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="k"&gt;no&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;path&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;adjustment&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Don&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;make&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;any&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;changes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;when&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;loading&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tests&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;NOSE_NOPATH&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/pre&gt;


&lt;p&gt;ちなみに対象のディレクトリはlibとsrcのみで、それらは文書に書かれていません。&lt;/p&gt;
&lt;p&gt;ひどいですね。&lt;/p&gt;
&lt;p&gt;Djangoのような予期しないパスの書き換えをしてほしくないときは&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;nosetests -P
&lt;/pre&gt;


&lt;p&gt;覚えましたね?&lt;/p&gt;&lt;/div&gt;</description><category>nose</category><category>Python</category><guid>https://yarch.jp/posts/qiita/nosenosys.pathKai-Zan-woBou-gu.html</guid><pubDate>Mon, 24 Aug 2015 07:42:58 GMT</pubDate></item></channel></rss>