1
\$\begingroup\$

I'm using the latest Haxe (2.10), NME (3.4.3), and MUnit.

I've written some unit tests that need to fetch bitmap data from SWF symbols. The first step is to actually load the SWF data. To do this, I use NME's getByteArray along with the swf library, like so:

var blah:SWF = new SWF(Assets.getBytes("assets/swf/test.swf"));

The call to Assets.getBytes returns null when I'm running this under MUnit. When running my actual game code, I'm able to get the byte array (and consequentially, instantiate the SWF class).

Am I doing something wrong? What am I missing?

Edit: My directory structure is:

. (root
.\assets
.\assets\*.png (other images)
.\assets\swf\*.swf (SWFs)
.\Source\*.hx (source code)
.\Test\*.hx (tests)
\$\endgroup\$
4
  • 1
    \$\begingroup\$ I've not used any of those things, but it would seem returning null means it's unable to find the file specified. Check the path? \$\endgroup\$ Commented Sep 19, 2012 at 15:32
  • \$\begingroup\$ @Byte56 the path is impeccable, since the production/game code can find the file. Both sets of code are in the same "JAR" (java anology) or "DLL" (C# analogy). \$\endgroup\$ Commented Sep 19, 2012 at 15:52
  • \$\begingroup\$ What's the resulting directory structure? Is assets in a common directory or is it under the main directory? Is this the only file you have an issue with or is it all the files in assets? I'm still betting it's a path issue... \$\endgroup\$ Commented Sep 19, 2012 at 16:56
  • \$\begingroup\$ @Byte56 the resulting directory structure is mentioned above. Assets is a common directory. I only have issues with calls to getBytes; for example, I can call getBitmapData and getFonts without anyh problems from tests. \$\endgroup\$ Commented Sep 19, 2012 at 18:05

1 Answer 1

1
\$\begingroup\$

This looks like an issue with the working directory; likely when running under MUnit, your working directory isn't the same as when running your primarily applicable and thus the paths do not correctly resolve (it's also possible for some reason that file IO methods are disallowed under test, but that seems egregious).

Consider using embedding the resources in your test assemblies, or determining how to alter the working directory for MUnit's test execution.

\$\endgroup\$

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.